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 而丢弃的支票。