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

最佳答案

如果您要做的只是将项目从一个区块转发到其他几个区块,则不需要BufferBlock

但是在某些情况下肯定有用。例如,如果您有一个复杂的数据流网络,则可能要从较小的子网络中构建,每个子网络都以自己的方法创建。为此,您需要某种方式来表示一组块。在您提到的情况下,从方法中返回单个BufferBlock(可能是ITargetBlock)将是一个简单的解决方案。
BufferBlock有用的另一个示例是,如果您想将项目从多个源块发送到多个目标块。如果您使用BufferBlock作为中介,则不必将每个源块都连接到每个目标块。

我确定还有许多其他示例可以使用BufferBlock。当然,如果您看不到有任何理由使用它,那就不要。

09-08 05:00