ParallelOptions.MaxDegreeOfParallelism 屬性

定義

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

public int MaxDegreeOfParallelism { get; set; }

屬性值

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

例外狀況

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

備註

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

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

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

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

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

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

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0