ParallelOptions.MaxDegreeOfParallelism 屬性

定義

取得或設定這個 ParallelOptions 執行個體啟用的並行工作數目上限。

public:
 property int MaxDegreeOfParallelism { int get(); void set(int value); };
public int MaxDegreeOfParallelism { get; set; }
member this.MaxDegreeOfParallelism : int with get, set
Public Property MaxDegreeOfParallelism As Integer

屬性值

整數,表示平行處理原則的最大程度。

例外狀況

此屬性設定為零或小於 -1 的值。

備註

屬性 MaxDegreeOfParallelism 會影響由 Parallel 傳遞這個 ParallelOptions 實例的方法呼叫所執行的並行作業數目。 正值的屬性值會將並行操作次數限制為設定的值。 如果是 -1,則除了 方法之外,並存執行的作業 ForEachAsync 數目 (沒有限制,其中 -1 表示 ProcessorCount) 。

根據預設, ForForEach 會利用基礎排程器所提供的執行緒數目,因此從預設值變更 MaxDegreeOfParallelism 只會限制將使用多少並行工作。

一般而言,您不需要修改此設定。 不過,您可以選擇在進階使用案例中明確設定,例如:

  • 當您知道所使用的特定演算法不會超過特定數目的核心時。 您可以設定 屬性,以避免在額外的核心上浪費迴圈。

  • 當您同時執行多個演算法,並想要手動定義每個演算法可以使用多少系統時。 您可以為每個設定一個 MaxDegreeOfParallelism 值。

  • 當執行緒集區的啟發學習法無法判斷要使用的正確執行緒數目,最後可能會插入太多執行緒。 例如,在長時間執行的迴圈主體反復專案中,執行緒集區可能無法分辨合理進度或即時鎖定或死結之間的差異,而且可能無法回收新增的執行緒以改善效能。 在此情況下,您可以設定 屬性,以確保不會使用超過合理的執行緒數目。

適用於