Var*_*har 6 .net c# task-parallel-library tpl-dataflow
我有一个BatchBlock与BoundedCapacity在其上定义
var _batchBlock = new BatchBlock<int>(2, new GroupingDataflowBlockOptions
{BoundedCapacity = 100 });
Run Code Online (Sandbox Code Playgroud)
因此,如果队列容量达到100,则该块会推迟收到的每条消息,直到某个地点可用.在这种情况下,批处理队列被认为是贪婪还是非贪婪?
该块是贪婪的,但不是因为它如何处理100以上的项目,而是因为2以下的项目.您可以将贪婪值设置为false(true是默认值)然后块只有在有足够的发送时才会实际使用项目一批,直到那时它们被推迟:
var batchBlock = new BatchBlock<int>(2, new GroupingDataflowBlockOptions
{
Greedy = false,
BoundedCapacity = 100.
});
Run Code Online (Sandbox Code Playgroud)
BatchBlock类以贪婪或非贪婪模式运行.在贪婪模式(默认模式)下,BatchBlock对象接受它提供的每条消息,并在收到指定的元素数后传播出一个数组.在非贪婪模式下,BatchBlock对象推迟所有传入消息,直到有足够的消息来源向块提供消息以形成批处理
| 归档时间: |
|
| 查看次数: |
1806 次 |
| 最近记录: |