TPL Dataflow SingleProducerConstrained 是指源块的数量还是它们的并行度?
Is the TPL Dataflow SingleProducerConstrained referring to number of source block or the parallelism degree of them?
TPL Dataflow SingleProducerConstrained
选项是指源块的数量还是源块的最小总并行度?
即如果我只有一个源块链接到具有此选项的块,源的 MaxDegreeOfParallelism
是否必须为 1?
不是,意思是(来自MSDN):
methods like Post
, Complete
, Fault
, and OfferMessage
will never be called concurrently.
因此,如果您 100% 确定该块将从 在给定时刻只有一个来源。示例:
- 块是唯一一个链接源的目标
- 您使用
lock
围绕所有向块发送内容的方法
- 您的应用是单线程的,您发送消息时未使用线程池或其他一些线程技术。
- 等等
现在回到你的问题:
if I only have one source block linking to a block with this option, must the MaxDegreeOfParallelism
of the source be 1 or not?
它应该是 1
,好像它会不止于此,它会破坏一些因 SingleProducerConstrained
设置为 true
而丢弃的支票。
TPL Dataflow SingleProducerConstrained
选项是指源块的数量还是源块的最小总并行度?
即如果我只有一个源块链接到具有此选项的块,源的 MaxDegreeOfParallelism
是否必须为 1?
不是,意思是(来自MSDN):
methods like
Post
,Complete
,Fault
, andOfferMessage
will never be called concurrently.
因此,如果您 100% 确定该块将从 在给定时刻只有一个来源。示例:
- 块是唯一一个链接源的目标
- 您使用
lock
围绕所有向块发送内容的方法 - 您的应用是单线程的,您发送消息时未使用线程池或其他一些线程技术。
- 等等
现在回到你的问题:
if I only have one source block linking to a block with this option, must the
MaxDegreeOfParallelism
of the source be 1 or not?
它应该是 1
,好像它会不止于此,它会破坏一些因 SingleProducerConstrained
设置为 true
而丢弃的支票。