c# - 在数据流网络中使用 BufferBlock<T> 的好处

标签 c# .net task-parallel-library tpl-dataflow

我想知道使用链接到一个或多个 ActionBlock 的 BufferBlock 是否有好处,除了节流(使用 BoundedCapacity),而不是直接发布到 ActionBlock(只要不需要节流)。

最佳答案

如果您只想将项目从一个 block 转发到其他几个 block ,则不需要 BufferBlock

但在某些情况下它确实很有用。例如,如果您有一个复杂的数据流网络,您可能希望从较小的子网络构建它,每个子网络都以自己的方法创建。为此,您需要某种方式来表示一组 block 。在您提到的情况下,从该方法返回单个 BufferBlock(可能作为 ITargetBlock)将是一个简单的解决方案。

另一个 BufferBlock 很有用的例子是,如果你想将项目从几个源 block 发送到多个目标 block 。如果您使用 BufferBlock 作为中介,则不必将每个源 block 连接到每个目标 block 。

我相信还有许多其他示例可以使用 BufferBlock。当然,如果您认为没有任何理由在您的案例中使用它,那就不要。

关于c# - 在数据流网络中使用 BufferBlock<T> 的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12781181/

相关文章:

c# - 按 ID 的 BinarySearch 对象数组

c# - c# 中的非自动阻塞 MessageBoxes

asp.net - 如何在asp.net 4.0中执行异步任务

c# - 用于测试多个项目并可能放弃的并行模式

c# - 填充区域,由线和圆限定

c# - 在 ASP.NET 5 中使用分部 View

c# - 将实例化的 System.Type 作为泛型类的类型参数传递

c# - 将取消 token 传递给调用方法 VS 任务构造函数?

c# - 使用 Linq 将对象列表分组为新的对象列表分组列表

c# - 根据字符串访问特定标签