我在上面定义了BatchBlock
的BoundedCapacity
var _batchBlock = new BatchBlock<int>(2, new GroupingDataflowBlockOptions
{BoundedCapacity = 100 });
因此,如果队列容量达到100,则该块将每个接收到的消息推迟到某个位置可用为止。
在这种情况下,批处理队列是否被视为贪婪或非贪婪?
最佳答案
该块是贪婪的,但不是因为它如何处理大于100的项目,而是因为它处理小于2的项目。您可以将贪婪值设置为false
(默认为true
),然后该块仅在有足够数量时才实际消耗项目发送一批,直到他们被推迟:
var batchBlock = new BatchBlock<int>(2, new GroupingDataflowBlockOptions
{
Greedy = false,
BoundedCapacity = 100.
});
从Dataflow (Task Parallel Library)
关于c# - 定义了有限容量的贪婪和非贪婪数据流块之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26394644/