是否可以在流和其他一些标准上都有一个BlockingCollection<T>
(JobQueue
在我的例子中)块执行?GetConsumingEnumerable()
我的条件availableSlots > 0
是只允许在有可用插槽时消耗物品。问题是当集合中有项目但条件为假时,foreach 无限循环。
我不能让收藏也被阻止availableSlots > 0
吗?
foreach (var job in JobQueue.GetConsumingEnumerable())
{
if(availableSlots > 0)
{
JobHandler jobHandler = job;
Task.Factory.StartNew(() =>
{
ExecuteJob(jobHandler);
});
}
}
也许我错误地使用了这个集合。任何帮助表示赞赏!