判別させながら、5秒待ちたい

[戻る]
タカオ 2005/05/25(水) 22:46:09
こんばんは。
VisualC++6.0 SP5での質問です。
ある計器から5秒間データを取り込み、このデータがある一定値以上になると、イベント
が起こるようにプログラムしているのですが、この5秒間の中で常に一定値以上になるか
判別させるために、whileを使っていました。
そうすると、CPU使用率がものすごく上がってしまい、どうにかしたいです。また、
forで回しても同様な状態です。
5秒間、判別し続けるというのに何か最適な方法がありませんでしょうか。ご教授くださ
い。

Ban 2005/05/25(水) 23:13:48
ループの間にでも
::Sleep(1);
と書いてみてください。


可能なら、イベント待ちでブロッキングがお勧めですが、
このあたりは機器次第でしょうから。

タカオ 2005/05/26(木) 00:41:08
ありがとうございます。
明日早速試させていただきます。

Ban 2005/05/26(木) 01:19:11
追加補足

もしもそのループを、例えば UI スレッド (ウィンドウがあるメインスレッドなど)に
書いているのであれば、「メッセージループ」もあわせて入れてあげてください。

メッセージループについては、この用語と PeekMessage あたりを調べてもらえれば
説明が見つかるでしょう。

古いスレッドには追加発言できません。