次の方法で共有


SetThreadpoolWaitEx 関数 (threadpoolapiset.h)

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

構文

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 以外の場合、待機は set と見なされます。

[in, optional] pftTimeout

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

このパラメーターが NULL の場合、待機はタイムアウトしません。

Reserved

予約済み。 NULL にする必要があります

戻り値

待機が以前に設定され、取り消された場合は TRUE を返します。 それ以外の場合は、FALSE を返します。

待機の前の状態が "set" で、関数が FALSE を返した場合、コールバックが進行中か、開始中です。 詳細については、解説を参照してください。

注釈

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

場合によっては、アプリケーションがスレッド プール タイマーを閉じると、コールバック関数が実行されることがあります。 この動作を防ぐために、アプリケーションは CloseThreadpoolWait で説明されている手順に従う必要があります。

pftTimeout で指定されたタイムアウトが相対的な場合、システムがスリープまたは休止状態で費やす時間は、待機の有効期限にカウントされません。 待機は、システムがウェイク状態で費やした累積経過時間が、待機の相対タイムアウトと等しい場合に通知されます。 pftTimeout で指定されたタイムアウトが絶対である場合、システムがスリープまたは休止状態で費やす時間は、待機の有効期限にカウントされます。 システムのスリープ中に待機が期限切れになった場合、システムがスリープ解除されると、待機はすぐに通知されます。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー threadpoolapiset.h
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

CloseThreadpoolWait

CreateThreadpoolWait

スレッド プール

WaitForThreadpoolWaitCallbacks