CThreadPool::SetSize

プール内のスレッドの数を設定するには、このメソッドを呼び出します。

HRESULT STDMETHODCALLTYPE SetSize( 
   int nNumThreads  
) throw( );

パラメーター

  • nNumThreads
    プールのスレッドの要求数。

    nNumThreads が負の場合はスレッドの総数を取得するには、絶対値はコンピューターのプロセッサ数によって大きくなります。

    nNumThreads がゼロの場合は、スレッドの総数を取得するには、ATLS_DEFAULT_THREADSPERPROC コンピューターのプロセッサ数によって大きくなります。

戻り値

正常に終了した場合は、S_OK を返します。それ以外の場合は、エラーの HRESULT を返します。

解説

指定したスレッドの数がプールのスレッドの数を現在より小さい場合、オブジェクトは待機スレッドが取得されるキューにシャットダウン メッセージを設定します。 待機中のスレッドはキューからメッセージを取得すると、スレッド プールのスレッドを示して、プロシージャを終了します。 このプロセスはプールのスレッドの数に到達するまで繰り返されます指定した数のスレッドまたはまでの時間内に指定した GetTimeout/SetTimeoutによって終了しませんでした。 この場合、メソッドが WAIT_TIMEOUT に対応する HRESULT を返し、保留中のシャットダウン メッセージがキャンセルされます。

必要条件

Header: atlutil.h

参照

関連項目

CThreadPool クラス

IThreadPoolConfig::SetSize

CThreadPool::GetSize