CThreadPool::SetSize
更新 : 2007 年 11 月
プールのスレッド数を設定します。
HRESULT STDMETHODCALLTYPE SetSize(
int nNumThreads
) throw( );
パラメータ
nNumThreads
プール内の要求されたスレッド数。nNumThreads に負の値を指定した場合は、スレッドの合計数を取得するために、指定した値の絶対値がコンピュータのプロセッサの数で乗算されます。
nNumThreads に 0 を指定した場合は、スレッドの合計数を取得するために、ATLS_DEFAULT_THREADSPERPROC がコンピュータのプロセッサの数で乗算されます。
戻り値
正常に終了した場合は、S_OK を返します。それ以外の場合は、エラーの HRESULT を返します。
解説
指定されたスレッド数が現在プール内にあるスレッド数より少ない場合、オブジェクトは、待機中のスレッドが取り出せるように、シャットダウン メッセージをキューに置きます。待機中のスレッドは、シャットダウン メッセージをキューから取り出すとスレッド プールに通知し、スレッド プロシージャを終了させます。この処理は、プール内のスレッド数が指定した値になるまで、または GetTimeout や SetTimeout で指定した期間内に終了したスレッドがなくなるまで繰り返されます。この場合、メソッドは WAIT_TIMEOUT に対応した HRESULT を返し、保留中のシャットダウン メッセージはキャンセルされます。
必要条件
ヘッダー : atlutil.h