通知
すべてクリア
Topic starter
2003年7月12日 11:58 AM
while文での条件待ち(条件判定)状態にあるとき、ウィンドウをアップデートする方法
を教えてください。
タイマーで、メンバ変数の値をPCに増設したA/D変換ボードの値に更新しています。
このときに、あるボタンを押すと、while文のある関数に入るのですが、そのwhile文内の
命令(条件判定)を行っている間はウィンドウ表示および値がアップデートされていない
ようなのです。(←間違った認識かもしれませんが...)
どのようにしたら、while文を実行しながらもウィンドウをアップデートできるのか教え
てください。
2003年7月12日 2:00 PM
UpdateWindowするとか。
2003年7月12日 5:35 PM
>どのようにしたら、while文を実行しながらもウィンドウをアップデートできるのか
>教えてください。
基本的には「できない」と考えてください。
あなたが while() 中に記述しているコードを、別スレッドで実行するのが推奨の解決方
法です。
2003年7月14日 9:44 AM
基本的にウインドウメッセージを受けて処理を行う関数に入ったら
その関数から抜けてOS側に制御が戻るまで画面の更新はされないと
考えるのが良いと思います。
ウインドウズはそのOSの仕組み上、そういった制約があります。
これを解決する方法として、
タイマーによる定期的な処理呼び出し
(毎回、関数から抜けて抜けるときに再入用のタイマーをかける)
とか、
処理部分を別スレッドにして実行はスレッドに任せておき、
結果だけをもらって表示する。
といった方法があります。
スレッドがきちんと実装される前はタイマーを使ってましたが、
スレッドがきちんと実装されてからスレッドを使うことが多いです。(私は)