ThreadPool.SetMaxThreads(Int32, Int32) 方法

定義

設定可並行使用之執行緒集區的要求數目。 超過該數目的所有要求會繼續佇列,直到可以使用執行緒集區執行緒為止。

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 ,實際的執行緒計數上限可能低於要求。

適用於

另請參閱