TPL DataFlow与BlockingCollection

poy*_*poy 6 .net task-parallel-library data-synchronization tpl-dataflow

我知道a BlockingCollection最适合消费者/生产者模式.然而,当我使用一个ActionBlockTPL数据流库?

我最初的理解是针对IO操作,保持BlockingCollection同时CPU密集型操作适合于ActionBlock.但我觉得这不是整个故事...任何额外的见解?

i3a*_*non 8

TPL Dataflow更适合基于actor的设计.这意味着如果你想链接生产者和消费者,TDF会更容易.

TPL数据流的另一大优点是它是async在考虑的基础上构建的.你既可以产生和同步方式消耗,并async方式(两者在同一时间),这是非常有用的.(我主要以同步方式生产并以非阻塞async方式消费).

您还可以非常轻松地设置有界容量和并行度.

TL; DR:BlockingCollection是一个简单而通用的工具.TPL Dataflow更加强大,但对于特定问题可能是过度或不适合.