【发布时间】:2013-03-22 08:15:15
【问题描述】:
我有一个ConcurrentStack,其中的每一项都是指向某个网络资源的 URL。另外我有 N 个线程(实际上是 Tasks),每个线程从堆栈进程中弹出一个项目,并根据某些标准将结果(结果是集合)添加到此堆栈或其他输出队列中。应该这样做,直到堆栈变空。
识别此过程结束并停止此任务的更优雅的方法是什么?换句话说,如何识别栈是空的,并且没有执行任务会向栈中添加更多的项
【问题讨论】:
-
您在描述消费者的工作方式,但您的问题是关于生产者的。
标签: c# multithreading c#-4.0 concurrency