通知
すべてクリア
Topic starter
2005年5月25日 10:46 PM
こんばんは。
VisualC++6.0 SP5での質問です。
ある計器から5秒間データを取り込み、このデータがある一定値以上になると、イベント
が起こるようにプログラムしているのですが、この5秒間の中で常に一定値以上になるか
判別させるために、whileを使っていました。
そうすると、CPU使用率がものすごく上がってしまい、どうにかしたいです。また、
forで回しても同様な状態です。
5秒間、判別し続けるというのに何か最適な方法がありませんでしょうか。ご教授くださ
い。
2005年5月25日 11:13 PM
ループの間にでも
::Sleep(1);
と書いてみてください。
可能なら、イベント待ちでブロッキングがお勧めですが、
このあたりは機器次第でしょうから。
Topic starter
2005年5月26日 12:41 AM
ありがとうございます。
明日早速試させていただきます。
2005年5月26日 1:19 AM
追加補足
もしもそのループを、例えば UI スレッド (ウィンドウがあるメインスレッドなど)に
書いているのであれば、「メッセージループ」もあわせて入れてあげてください。
メッセージループについては、この用語と PeekMessage あたりを調べてもらえれば
説明が見つかるでしょう。