C#批处理块
例子
(将一定数量的连续数据项分组为数据项的集合)
BatchBlock将N个单个项目组合成一个批处理项目,表示为元素数组。创建一个具有特定批次大小的实例,然后该块在收到该数量的元素后立即创建一个批次,将批次异步输出到输出缓冲区。
BatchBlock能够在贪婪和非贪婪模式下执行。
在默认的贪婪模式下,从任意数量的源提供给块的所有消息都被接受并缓冲以转换为批处理。
在非贪婪模式下,所有消息都从源延迟,直到有足够的源向块提供消息以创建批处理。因此,BatchBlock可用于从N个源中的每一个接收1个元素,从1个源接收N个元素,以及它们之间的无数选项。
将请求分成100个一组以提交到数据库
var batchRequests = new BatchBlock(batchSize:100); var sendToDb = new ActionBlock (reqs => SubmitToDatabase(reqs)); batchRequests.LinkTo(sendToDb);
每秒创建一个批次
var batch = new BatchBlock(batchSize:Int32.MaxValue); new Timer(() => { batch.TriggerBatch(); }).Change(1000, 1000);
StephenToub对TPL数据流的介绍
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练