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 スレッドの最大数。

戻り値

Boolean

変更が成功した場合は true。それ以外の場合は false

注釈

ワーカー スレッドまたは I/O 完了スレッドの最大数を、コンピューター上のプロセッサの数より小さい数に設定することはできません。 存在するプロセッサの数を確認するには、プロパティの値を Environment.ProcessorCount 取得します。 さらに、ワーカー スレッドまたは I/O 完了スレッドの最大数を、対応するワーカー スレッドまたは I/O 完了スレッドの最小数より小さい数に設定することはできません。 スレッド プールの最小サイズを確認するには、メソッドを GetMinThreads 呼び出します。

共通言語ランタイムがホストされている場合 (たとえば、インターネット インフォメーション サービス (IIS) またはSQL Serverによって)、ホストはスレッド プール サイズの変更を制限または禁止できます。

スレッド プール内のスレッドの最大数を変更する場合は注意が必要です。 コードの利点はあるものの、変更が使用するコード ライブラリに悪影響を及ぼす可能性があります。

スレッド プールのサイズを大きすぎると、パフォーマンスの問題が発生する可能性があります。 同時に実行されているスレッドが多すぎると、タスク切り替えオーバーヘッドが大きな要因になります。

適用対象

こちらもご覧ください