前の待機オブジェクトを置き換えて待機オブジェクトを設定します (存在する場合)。 ワーカー スレッドは、ハンドルが通知された後、または指定されたタイムアウトの有効期限が切れた後に、待機オブジェクトのコールバック関数を呼び出します。
構文
BOOL SetThreadpoolWaitEx(
[in, out] PTP_WAIT pwa,
[in, optional] HANDLE h,
[in, optional] PFILETIME pftTimeout,
PVOID Reserved
);
パラメーター
[in, out] pwa
待機オブジェクトを定義する TP_WAIT 構造体へのポインター。 CreateThreadpoolWait 関数は、このポインターを返します。
[in, optional] h
ハンドル。
このパラメーターが NULL の場合、待機オブジェクトは新しいコールバックのキューに入れなくなります (ただし、既にキューに登録されているコールバックは引き続き発生します)。
このパラメーターが NULL でない場合は、有効な待機可能オブジェクトを参照する必要があります。
待機がまだ保留中の間にこのハンドルを閉じると、関数の動作は未定義になります。 待機がまだ保留中で、ハンドルを閉じる必要がある場合は、 CloseThreadpoolWait を使用して待機を取り消し、ハンドルを閉じます。
このパラメーターが NULL 以外の場合、待機は設定されていると見なされます。
[in, optional] pftTimeout
待機操作がタイムアウトする絶対時間または相対時間を指定する FILETIME 構造体へのポインター。このパラメーターが正の値を指している場合は、1601 年 1 月 1 日 (UTC) 以降の絶対時間を 100 ナノ秒間隔で示します。 このパラメーターが負の値を指している場合は、現在の時刻を基準にして待機する時間を示します。 このパラメーターが 0 を指している場合、待機はすぐにタイムアウトします。 時間値の詳細については、「 ファイル時間」を参照してください。
このパラメーターが NULL の場合、待機はタイムアウトしません。
Reserved
予約済み。 NULL にする必要があります。
戻り値
待機が以前に設定され、取り消された場合は TRUE を返します。 それ以外の場合は FALSE を返します。
待機の前の状態が "set" で、関数が FALSE を返す場合は、コールバックが進行中または開始中です。 詳細については、解説を参照してください。
注釈
待機オブジェクトは、ハンドルを 1 つだけ待機できます。 待機オブジェクトのハンドルを設定すると、前の待機ハンドル (存在する場合) が置き換えられます。
場合によっては、アプリケーションがスレッド プール タイマーを閉じた後にコールバック関数が実行されることがあります。 この動作を防ぐために、アプリケーションは CloseThreadpoolWait で説明されている手順に従う必要があります。
pftTimeout で指定されたタイムアウトが相対的な場合、システムがスリープ状態または休止状態で費やす時間は、待機の有効期限にはカウントされません。 待機は、システムが待機状態で費やした経過時間の累積量が、待機の相対タイムアウトと等しい場合に通知されます。 pftTimeout で指定されたタイムアウトが絶対である場合、システムがスリープまたは休止状態で費やす時間は、待機の有効期限までカウントされます。 システムのスリープ中に待機の有効期限が切れると、システムがスリープ解除されるとすぐに待機が通知されます。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
| サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
| ターゲット プラットフォーム の |
Windows |
| Header | threadpoolapiset.h |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |