我明白,一个BlockingCollection
最适合消费者/生产者模式。但是,我什么时候使用ActionBlock
来自TPL数据流图书馆?
我最初的理解是对于IO操作,保留BlockingCollection
而 CPU 密集型操作最适合ActionBlock
。但我觉得这不是故事的全部......还有什么额外的见解吗?
TPL 数据流更适合基于参与者的设计。这意味着如果您想链接生产者和消费者,使用 TDF 会容易得多。
TPL 数据流的另一大优点是它是用async
心里。您可以以同步方式生产和消费and in an async
方式(并且同时),这非常有用。
(我主要以同步方式生产并以非阻塞方式消费async
way).
您还可以非常轻松地设置有界容量和并行度。
TL;DR: BlockingCollection
是一个简单且通用的工具。TPL Dataflow
更强大,但可能会显得矫枉过正或不适合特定问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)