• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Threadの使い方について)

Threadの使い方について

このQ&Aのポイント
  • Threadの使い方に関する質問です。コード内でのSleep(1)の省略方法を教えてください。
  • コードの説明:OnButton5から30回ThreadAを起動し、ThreadAからThreadBを起動するコードです。Sleep(1)があるとcountAとcountBが30までカウントアップしますが、Sleep(1)がないとcountAとcountBが30までカウントアップしないことがあります。
  • 質問:Sleep(1)を省略できる方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

このような場合は Sleep(0); を使います。 Sleepに0を指定した場合、自分より実行順位が等しいか又は高いスレッドがあれば、それらに実行権を譲り、無ければ(自分が一番優先度が高ければ)即座に戻って来ます。 つまり「0を渡せば時間待ちしないで、実行権の明け渡しをする」ので、他のスレッドが期待通りに動作します。 マルチスレッドで「他のスレッドが実行されるのを期待(想定、待機)する場合」は「Sleep(0)を実行して明示的に実行権の明け渡し」をしないといけません。

関連するQ&A