プラットフォーム SDK
Sleep
>

指定された時間にわたって、現在のスレッドの実行を中断します。

アラート可能な待機状態(特定のイベントが発生した時点で待機を解除)に入るには、SleepEx 関数を使ってください。

VOID Sleep(
  DWORD dwMilliseconds   // 中断の時間
);

パラメータ

dwMilliseconds
実行を中断する時間を、ミリ秒(ms)単位で指定します。0 を指定すると、現在のスレッドは、優先順位が等しく実行の準備ができているほかのスレッドに残りのタイムスライスを譲ります。そのようなスレッドが存在しない場合は、この関数は即座に制御を返します。INFINITE を指定すると、実行が無制限に中断されます。

戻り値

戻り値はありません。

解説

中断時間として 0ms を指定してこの関数を呼び出すと、現在のスレッドは自らに割り当てられているタイムスライスの残りの部分を放棄します。

Sleep 関数と、ウィンドウを直接的または間接的に作成するコードを組み合わせて使う場合は、注意が必要です。1 つのスレッドがウィンドウを作成した場合、そのスレッドはそのウィンドウに関係するメッセージを処理しなければなりません。また、メッセージのブロードキャスト(同報送信)が発生した場合、システム内のすべてのウィンドウへそのメッセージが送信されます。無期限の遅延を指定して Sleep 関数を呼び出していた場合、このような現象が発生すると、システムはデッドロック状態に陥ります。ウィンドウを間接的に作成する 2 つの例として、DDE と COM の CoInitialize があります。そのため、ウィンドウを作成するスレッドでは、Sleep 関数ではなく、MsgWaitForMultipleObjects または MsgWaitForMultipleObjectsEx 関数を使ってください。

MAPI:詳細については、MSDN ライブラリの「」を参照してください。

対応情報

Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winbase.h 内で宣言、Windows.h をインクルード
インポートライブラリ:Kernel32.lib を使用

参照

MsgWaitForMultipleObjects, MsgWaitForMultipleObjectsEx, SleepEx

Page view tracker