<Return[S]><Top>

SleepEx

Declare Function Api_SleepEx Lib "kernel32" Alias "SleepEx" (ByVal dwMilliseconds&, ByVal bAlertable&)

Declare Function SleepEx Lib "kernel32" (ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long

現在のスレッドを中断する。次の条件のいずれかが満たされると、実行を再開する。

・I/O 完了コールバック関数が呼び出された。

・非同期プロシージャコール(APC)オブジェクトが、スレッドの ACP キューに置かれた。

・タイムアウト時間が経過した。

パラメータ
dwMilliseconds
    タイムアウト時間をミリ秒(ms)単位で指定する。

    0 を指定すると、優先順位が等しく実行の準備ができているほかのスレッドに残りのタイムスライスを譲る。

    現在のスレッドは、そのようなスレッドが存在しない場合は、この関数は即座に制御を返す。

    INFINITE を指定すると、実行が無制限に中断される。
bAlertable
    I/O 完了コールバックまたは APC が発生したときに SleepEx 関数を終了させるかどうかを指定する。

    FALSE を指定すると、タイムアウト時間が経過するまで、この関数は制御を返さない。

    I/O 完了コールバックが発生した場合も、この関数は制御を返さず、I/O 完了コールバック関数を実行しない。

    APC がスレッドのキューに置かれた場合も、この関数は制御を返さず、APC 関数を実行しない。
    TRUE を指定すると、この関数を呼び出したスレッドが拡張 I/O 関数(ReadFileEx または WriteFileEx 関数)を呼び出した場合、タイ

    ムアウト時間が経過するか、I/O 完了コールバック関数が呼び出された時点で、SleepEx 関数が制御を返す。

    I/O 完了コールバックが発生すると、I/O 完了コールバック関数を呼び出す。

    同様に、QueueUserAPC 関数が APC オブジェクトをスレッドのキューに置いた場合、タイムアウト時間が経過するか、APC 関数が呼び出

    された時点で、SleepEx 関数が制御を返す。

戻り値
    指定したタイムアウト時間が経過すると、0 が返る。