次の方法で共有


スレッド実行の中断

スレッドは、別のスレッドの実行を中断および再開できます。 スレッドが中断されている間は、プロセッサ上の時間はスケジュールされません。

スレッドが (CREATE_SUSPENDED フラグを使用して) 中断状態で作成された場合、別のスレッドが、中断されたスレッドへのハンドルを持つ ResumeThread 関数を呼び出すまで実行を開始しません。 これは、実行を開始する前にスレッドの状態を初期化する場合に役立ちます。 ResumeThread を呼び出すと、中断されたスレッドがそのコードの開始点を確実に実行するため、作成時にスレッドを中断すると、1 回限りの同期に役立ちます。

SuspendThread 関数は、スレッドの実行が中断されるコード内のポイントを制御しないため、スレッド同期に使用することを意図していません。 この関数は、主にデバッガーで使用するように設計されています。

スレッドは、スリープ または SleepEx関数呼び出すことによって、指定された間隔で実行を一時的に生成できます。これは、ユーザーが操作の結果を観察できるのに十分な時間実行を遅らせる可能性があるため、スレッドがユーザーの操作に応答する場合に特に便利です。 スリープ期間中、スレッドはプロセッサ上の時刻に対してスケジュールされません。

SwitchToThread 関数は、間隔を指定できない点を除き、スリープ および SleepExに似ています。 SwitchToThread を使用すると、スレッドはタイム スライスを放棄できます。