作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我预计以下内容会从两个出版商产生输出,但它只产生第一个的输出:
var broadcastBlock = new BroadcastBlock<int>(null);
var transformBlock = new TransformBlock<int, int>(i => i*10);
var publish1 = new ActionBlock<int>(i => Console.WriteLine("Publisher 1:" + i));
var publish2 = new ActionBlock<int>(i => Console.WriteLine("Publisher 2:" + i));
broadcastBlock.LinkTo(transformBlock, new DataflowLinkOptions() { PropagateCompletion = true });
transformBlock.LinkTo(publish1, new DataflowLinkOptions() { PropagateCompletion = true });
transformBlock.LinkTo(publish2, new DataflowLinkOptions() { PropagateCompletion = true });
foreach (var i in Enumerable.Range(0, 5))
{
broadcastBlock.Post(i);
}
broadcastBlock.Complete();
Task.WhenAll(publish1.Completion, publish2.Completion).Wait();
最佳答案
您正在链接 2 ActionBlock
s 到单个 TransformBlock
.您应该链接 2 ActionBlock
s 到 BrodcastBlock
并链接 BroadcastBlock
到 TransformBlock
.
你有什么:
BroadCast => Transfrom => ActionBlock
=> ActionBlock
Transfrom => BroadCast => ActionBlock
=> ActionBlock
关于c# - 如何在 TPL Dataflow 中将多个目标 block 与源 block 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23290989/
我是一名优秀的程序员,十分优秀!