ThreadPool.SetMaxThreads(Int32, Int32) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
設定可並行使用之執行緒集區的要求數目。 超過該數目的所有要求會繼續佇列,直到可以使用執行緒集區執行緒為止。
public:
static bool SetMaxThreads(int workerThreads, int completionPortThreads);
public static bool SetMaxThreads (int workerThreads, int completionPortThreads);
static member SetMaxThreads : int * int -> bool
Public Shared Function SetMaxThreads (workerThreads As Integer, completionPortThreads As Integer) As Boolean
參數
- workerThreads
- Int32
執行緒集區中的背景工作執行緒最大數目。
- completionPortThreads
- Int32
執行緒集區中的非同步 I/O 執行緒最大數目。
傳回
如果變更成功,則為 true
;否則為 false
。
備註
當 Windows 線程集區設定為使用而不是 .NET 線程集區時,不支援這個方法。 如需詳細資訊,請參閱 Windows 線程集區組態設定。
您無法將背景工作線程數目上限或 I/O 完成線程設定為小於電腦上的處理器數目。 若要判斷有多少處理器存在,請擷取 屬性的值 Environment.ProcessorCount 。 此外,您無法將背景工作線程或 I/O 完成線程數目上限設定為小於對應背景工作線程數目下限或 I/O 完成線程的數目。 若要判斷線程集區大小下限,請呼叫 GetMinThreads 方法。
如果裝載 Common Language Runtime,例如 Internet Information Services (IIS) 或 SQL Server,主機可以限制或防止變更線程集區大小。
變更線程集區中的線程數目上限時,請小心。 雖然您的程式代碼可能會受益,但變更可能會對您使用的程式代碼連結庫造成負面影響。
設定線程集區大小太大可能會導致效能問題。 如果同時執行太多線程,工作切換額外負荷會變成重大因素。
注意
線程集區可能會有線程計數上限, (例如 short.MaxValue
,視實作) 而定。 自變數值會限制為上限,因此即使方法傳回 true
,實際的線程計數上限可能低於要求。