poy*_*poy 6 .net task-parallel-library data-synchronization tpl-dataflow
我知道a BlockingCollection最适合消费者/生产者模式.然而,当我使用一个ActionBlock从TPL数据流库?
我最初的理解是针对IO操作,保持BlockingCollection同时CPU密集型操作适合于ActionBlock.但我觉得这不是整个故事...任何额外的见解?
TPL Dataflow更适合基于actor的设计.这意味着如果你想链接生产者和消费者,TDF会更容易.
TPL数据流的另一大优点是它是async在考虑的基础上构建的.你既可以产生和同步方式消耗,并在async方式(两者在同一时间),这是非常有用的.(我主要以同步方式生产并以非阻塞async方式消费).
您还可以非常轻松地设置有界容量和并行度.
TL; DR:BlockingCollection是一个简单而通用的工具.TPL Dataflow更加强大,但对于特定问题可能是过度或不适合.