我想知道使用链接到一个或多个 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/