【发布时间】:2014-02-11 14:01:40
【问题描述】:
有没有办法从阻塞集合中批量处理项目集合。 例如
我有一个消息总线发布者调用 阻塞集合.Add()
还有一个像这样创建的消费线程:
Task.Factory.StartNew(() =>
{
foreach (string value in blockingCollection.GetConsumingEnumerable())
{
Console.WriteLine(value);
}
});
但是,我只希望控制台在阻塞集合上有 10 个项目后写入,而 GetConsumingEnumerable() 总是在添加每个项目后触发。我可以为此编写自己的队列,但如果可能的话我想使用阻塞集合?
【问题讨论】:
-
@HansPassant:但这会导致 10 号之后的项目无法处理...?
标签: c# task-parallel-library blockingcollection