次の方法で共有


SetThreadpoolWait 関数 (threadpoolapiset.h)

前の待機オブジェクトを置き換えて待機オブジェクトを設定します (存在する場合)。 ワーカー スレッドは、ハンドルが通知された後、または指定されたタイムアウトの有効期限が切れた後に、待機オブジェクトのコールバック関数を呼び出します。

構文

void SetThreadpoolWait(
  [in, out]      PTP_WAIT  pwa,
  [in, optional] HANDLE    h,
  [in, optional] PFILETIME pftTimeout
);

パラメーター

[in, out] pwa

待機オブジェクトを定義する TP_WAIT 構造体へのポインター。 CreateThreadpoolWait 関数は、このポインターを返します。

[in, optional] h

ハンドル。

このパラメーターが NULL の場合、待機オブジェクトは新しいコールバックのキューに入れなくなります (ただし、既にキューに登録されているコールバックは引き続き発生します)。

このパラメーターが NULL でない場合は、有効な待機可能オブジェクトを参照する必要があります。

ミューテックスはサポートされていません。 ミューテックスへのハンドルが渡された場合、スレッド プールはSTATUS_THREADPOOL_HANDLE_EXCEPTION例外を発生させ、ExceptionRecord.ExceptionInformation[0] はSTATUS_INVALID_PARAMETER_3と等しくなります。

待機がまだ保留中の間にこのハンドルを閉じると、関数の動作は未定義になります。 待機がまだ保留中で、ハンドルを閉じる必要がある場合は、CloseThreadpoolWait 使用して待機を取り消し、ハンドルを閉じます。

このパラメーターが NULL 以外の場合、待機は設定されていると見なされます。

[in, optional] pftTimeout

待機操作がタイムアウトする絶対時間または相対時間を指定する、FILETIME 構造体へのポインター。このパラメーターが正の値を指している場合は、1601 年 1 月 1 日 (UTC) 以降の絶対時間を 100 ナノ秒間隔で示します。 このパラメーターが負の値を指している場合は、現在の時刻を基準にして待機する時間を示します。 時間値の詳細については、「ファイル時間」を参照してください。

このパラメーターが 0 を指す場合、待機はすぐにタイムアウトします。 このパラメーターが NULL の場合、待機はタイムアウトになりません。

戻り値

何一つ

備考

待機オブジェクトは、ハンドルを 1 つだけ待機できます。 待機オブジェクトのハンドルを設定すると、前のハンドルが置き換えられます (存在する場合)。

待機コールバックをトリガーするたびに通知する前に、待機オブジェクトにイベントを再登録する必要があります。

この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNTを 0x0600 以上として定義します。

例については、「スレッド プール関数の使用 」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリ |UWP アプリ]
サポートされる最小サーバー Windows Server 2008 [デスクトップ アプリ |UWP アプリ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー threadpoolapiset.h (Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

CloseThreadpoolWait を する

CreateThreadpoolWait の

SetThreadpoolWaitEx の

スレッド プールの

WaitForThreadpoolWaitCallbacks の