簡體   English   中英

TPL數據流SingleProducerConstrained是指源塊的數量還是它們的並行度?

[英]Is the TPL Dataflow SingleProducerConstrained referring to number of source block or the parallelism degree of them?

TPL數據流SingleProducerConstrained選項是指源塊的數量還是源塊的最小總並行度?

也就是說,如果我只有一個源代碼塊與此選項MaxDegreeOfParallelism ,那么源代碼的MaxDegreeOfParallelism是否必須為1?

不,這意味着(來自MSDN ):

諸如PostCompleteFaultOfferMessage將永遠不會被同時調用。

因此,如果您100%確保該塊在給定時刻 僅從一個來源獲取消息,則應將此屬性設置為true (默認值為false )。 例子:

  • 阻止僅是一個鏈接源的目標
  • 您在所有向塊發送內容的方法上使用lock
  • 您的應用是單線程的,並且您不使用線程池或其他一些線程技術來發送消息。
  • 等等

現在回到您的問題:

如果只有一個源代碼塊與此選項MaxDegreeOfParallelism ,那么源代碼的MaxDegreeOfParallelism是否必須為1?

它應該是1 ,好像會大於1一樣,它可能會破壞將SingleProducerConstrained設置為true丟棄的某些檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM