我有一个windows服务,每隔几分钟就会异步执行一个作业,有时候windows服务执行并且以前的作业还没有完成,使用线程是否有办法排队新作业一个没有完成,以便它在第一份工作完成时开始运行?c#中线程的排队执行#
2
A
回答
5
您可以创建自己的生产者/消费者队列作业 - 实际上是一个单线程线程池。
这很容易在.NET 4中使用BlockingCollection<T>
;在此之前它是一个小更复杂,但不是太不好。
+0
不幸的是,我使用3.5是否有链接到3.5中的示例?谢谢 – ryudice 2011-01-14 15:56:30
0
你必须在主控服务中实现队列。 在完成线程和/或期刊之后,您可以检查队列并开始下一个任务。
相关问题
- 1. 执行线程队列
- 2. 禁用排队C.执行用C
- 3. 如何解除排队的线程:C#
- 4. 如何在C#中排队用户工作项之后执行线程池?
- 5. C++中的线程池和执行队列11
- 6. 在C中执行线程#
- 7. 已排序执行线程
- 8. 执行器服务,扩展线程,然后排队任务
- 9. 如何排队NSUserAppleScriptTask执行?
- 10. 阻塞队列+线程+执行线程的序列
- 11. 线程池中的排队作业vb.net
- 12. 多线程和排队
- 13. 排队黑莓线程
- 14. Python 3线程和排队
- 15. Android:让线程在AlarmBroarcastReceiver中一个一个排队排队
- 16. C/Linux中的线程执行时间
- 17. C++线程不执行
- 18. 执行线程在c + +
- 19. C++线程的执行时间和执行线程在另一个线程
- 20. 由于C#中的定时器而线程排队#
- 21. 暂停/执行多线程程序中的一个线程(C#)
- 22. 在.net中排队一个线程
- 23. 将多线程执行的函数放入队列中
- 24. Python(pdb) - 排队要执行的命令
- 25. 在C#中的线程池类管理线程执行
- 26. C++线程池中的线程执行顺序
- 27. java线程如何排序线程的执行顺序
- 28. .NET中的多线程C#队列4
- 29. Linux中的多线程队列C
- 30. C++中的多线程队列销毁
听起来像你必须小心,如果他们排队的速度比他们能够完成的更快,那么就不会有无限增长的积压任务。确保在队列中存在最大数量的队列(例如,只有一个!),或者采取简单的方法,并且如果存在旧队列,则阻止新队列的开始。 – 2011-01-14 16:06:05