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 。
インターネット インフォメーション サービス (IIS) や SQL Server などによって共通言語ランタイムがホストされている場合、ホストはスレッド プール サイズの変更を制限または防止できます。
スレッド プール内のスレッドの最大数を変更する場合は注意が必要です。 コードには利点があるかもしれませんが、変更が使用するコード ライブラリに悪影響を及ぼす可能性があります。
スレッド プールのサイズを大きく設定すると、パフォーマンスの問題が発生する可能性があります。 同時に実行されているスレッドが多すぎると、タスク切り替えオーバーヘッドが重要な要因になります。
注意
スレッド プールには、最大スレッド数の上限がある場合があります (実装によっては 、 など short.MaxValue
)。 引数の値は上限に達するため、メソッドが を返 true
した場合でも、実際の最大スレッド数は要求よりも小さい場合があります。
適用対象
こちらもご覧ください
.NET