我有一个Windows服务,它每隔几分钟异步执行一次作业,有时候Windows服务会执行而前一个作业还没有完成,使用线程是否有一种方法可以将新作业排队,如果前一个作业没有完成,那么它第一份工作完成后开始运行?
答案 0 :(得分:5)
您可以创建自己的生产者/消费者作业队列 - 实际上是单线程线程池。
使用BlockingCollection<T>
在.NET 4中很容易做到这一点;在此之前它是一个小技巧,但太不好。
答案 1 :(得分:0)
您必须在主控制服务中实现队列。 在完成线程和/或periodicaly时,您可以检查队列并开始下一个任务。