ParallelOptions.MaxDegreeOfParallelism 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定這個 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) 。
根據預設, For 和 ForEach 會利用基礎排程器所提供的執行緒數目,因此從預設值變更 MaxDegreeOfParallelism 只會限制將使用多少並行工作。
一般而言,您不需要修改此設定。 不過,您可以選擇在進階使用案例中明確設定,例如:
當您知道所使用的特定演算法不會超過特定數目的核心時。 您可以設定 屬性,以避免在額外的核心上浪費迴圈。
當您同時執行多個演算法,並想要手動定義每個演算法可以使用多少系統時。 您可以為每個設定一個 MaxDegreeOfParallelism 值。
當執行緒集區的啟發學習法無法判斷要使用的正確執行緒數目,最後可能會插入太多執行緒。 例如,在長時間執行的迴圈主體反復專案中,執行緒集區可能無法分辨合理進度或即時鎖定或死結之間的差異,而且可能無法回收新增的執行緒以改善效能。 在此情況下,您可以設定 屬性,以確保不會使用超過合理的執行緒數目。