GetConsumingEnumerable()在完成添加后阻塞
本文关键字:添加 GetConsumingEnumerable | 更新日期: 2023-09-27 18:17:30
我有一些集合与id的异步处理。下面的简化代码
Task.Factory
.StartNew(() => {
foreach (long id in ids.GetConsumingEnumerable())
{
//processing code here
}
});
和另一个线程在一定条件后调用ids
上的CompleteAdding。但是工作线程在此之后仍然被阻塞。准确地说,工作线程阻塞在foreach语句的in
操作符上。
我该如何解决这个问题?
试试这个
var local = ids.GetConsumingEnumerable();
Task.Factory
.StartNew(() => {
foreach (long id in local)
{
//processing code here
}
});