c++ と msvc2010 を使用して、Windows で小さなアラート タイマーを作成したいと考えています。タイマーは、数分後にステータス メッセージをトリガーする必要があります。C ++を使用してシステム時間を確認する方法を知っており、Windows APIにスリープ機能があることを知っています。CPU負荷が非常に少ないタイマーを実装するにはどうすればよいですか? たとえば、トリガー時間に達したときにステータス メッセージをトリガーするために、数ミリ秒ごとにシステム時間をチェックしたくありません。余分なスレッドで sleep(600000) のようなものを使用する場合、CPU 負荷を作成しますか、それとも数分待ってからコードを実行するより効率的な方法はありますか?
質問する
285 次
2 に答える
1
スレッドを作成し、トリガーを実行する必要がある時間間隔だけスリープする連続ループを作成して、メッセージを出力することができます。2分で実行する必要がある場合、なぜ複数の小さな睡眠値を選択して時間を確認するのですか?それはCPU時間の無駄になります。
于 2013-03-16T16:45:42.447 に答える
1
あなたは確かに忙しい待機と時間をポーリングすることができます. プログラムがかろうじて測定可能になるには、a でもSleep(1)
十分です。
私は「昔」にそれを行っていましたが、これを行う複数のスレッドを実行している私のPII 233 Mhzでさえ、CPU使用率にほとんど影響を与えませんでした。
于 2013-03-16T16:44:09.137 に答える