C#语言BatchedJoinBlock
示例
(从2-3个输入中收集一定数量的总计项,并将它们分组为一组数据项的元组)
BatchedJoinBlock<T1,T2,...>在某种意义上是BatchBlock和JoinBlock<T1,T2,...>的组合。
而JoinBlock<T1,T2,...>用于将来自每个目标的一个输入聚合到一个元组中,而BatchBlock用于将N个输入聚合到一个集合中,BatchedJoinBlock<T1,T2,...>用于收集来自不同目标的N个输入所有目标都变成集合的元组。
散布/聚集
考虑一个分散/聚集问题,其中启动了N个操作,其中一些操作可能成功并产生字符串输出,而另一些操作可能失败并产生Exception。
var batchedJoin = new BatchedJoinBlock<string, Exception>(10);
for (int i=0; i<10; i++)
{
Task.Factory.StartNew(() => {
try { batchedJoin.Target1.Post(DoWork()); }
catch(Exception ex) { batchJoin.Target2.Post(ex); }
});
}
var results = await batchedJoin.ReceiveAsync();
foreach(string s in results.Item1)
{
Console.WriteLine(s);
}
foreach(Exception e in results.Item2)
{
Console.WriteLine(e);
}TPL数据流简介,作者:StephenToub
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练