Joh*_*0te 6 .net c# queue multithreading event-driven
我正在使用以下工作流程开展项目:
第一部分:
第二部分:
因此,问题在于,第一个队列中的每个项目最终并行运行大量任务,并且每个任务将其结果排队.第二个队列必须连续处理,一次一个项目,然后它被淹没.
我的问题
我需要一种机制,使线程处理Q1等待,直到Q2中的项数低于特定的阈值.实现这一目标的最佳方法是什么?有没有办法让事件驱动的解决方案而不是轮询解决方案?
不使用a Queue<T>,你可以使用BlockingCollection<T>for Q2.如果设置了它BoundedCapacity,Q2.Add()则会在达到容量时阻止调用.这将自动限制Q1的处理,因为如果N个任务无法添加到最终队列,它们将开始阻塞.
| 归档时间: |
|
| 查看次数: |
1180 次 |
| 最近记录: |