【发布时间】:2017-08-11 00:41:00
【问题描述】:
TPL Dataflow SingleProducerConstrained 选项是指源块的数量还是源块的最小总并行度?
即如果我只有一个源块链接到具有此选项的块,那么源的MaxDegreeOfParallelism 是否必须为 1?
【问题讨论】:
标签: c# task-parallel-library tpl-dataflow
TPL Dataflow SingleProducerConstrained 选项是指源块的数量还是源块的最小总并行度?
即如果我只有一个源块链接到具有此选项的块,那么源的MaxDegreeOfParallelism 是否必须为 1?
【问题讨论】:
标签: c# task-parallel-library tpl-dataflow
不,这意味着(来自MSDN):
Post、Complete、Fault和OfferMessage等方法永远不会被同时调用。
因此,如果您 100% 确定该块将从 仅一个 来源获取消息,则应将此属性设置为 true(false 是默认值) 给定的时刻。例子:
lock 围绕所有向块发送内容的方法现在回到你的问题:
如果我只有一个源块链接到具有此选项的块,源的
MaxDegreeOfParallelism是否必须为 1?
它应该是1,好像它不止于此,它可能会破坏一些将SingleProducerConstrained设置为true的检查。
【讨论】: