while文実行時のウィンドウアップデート方法 – プログラミング – Home

while文実行時のウィンドウアップデ...
 
通知
すべてクリア

while文実行時のウィンドウアップデート方法


マツ
 マツ
(@マツ)
ゲスト
結合: 21年前
投稿: 1
Topic starter  

while文での条件待ち(条件判定)状態にあるとき、ウィンドウをアップデートする方法
を教えてください。

タイマーで、メンバ変数の値をPCに増設したA/D変換ボードの値に更新しています。
このときに、あるボタンを押すと、while文のある関数に入るのですが、そのwhile文内の
命令(条件判定)を行っている間はウィンドウ表示および値がアップデートされていない
ようなのです。(←間違った認識かもしれませんが...)
どのようにしたら、while文を実行しながらもウィンドウをアップデートできるのか教え
てください。


引用解決済
トピックタグ
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 22年前
投稿: 178
 

 UpdateWindowするとか。


返信引用
渋木宏明(ひどり)
 渋木宏明(ひどり)
(@渋木宏明(ひどり))
ゲスト
結合: 22年前
投稿: 196
 

>どのようにしたら、while文を実行しながらもウィンドウをアップデートできるのか
>教えてください。

基本的には「できない」と考えてください。

あなたが while() 中に記述しているコードを、別スレッドで実行するのが推奨の解決方
法です。


返信引用
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 22年前
投稿: 178
 

 タイマーで表示してるのか、ならこっちだな。
http://www24.cds.ne.jp/~neg/pro/piyo1/multi/loop.html


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

基本的にウインドウメッセージを受けて処理を行う関数に入ったら
その関数から抜けてOS側に制御が戻るまで画面の更新はされないと
考えるのが良いと思います。
ウインドウズはそのOSの仕組み上、そういった制約があります。
これを解決する方法として、

タイマーによる定期的な処理呼び出し
(毎回、関数から抜けて抜けるときに再入用のタイマーをかける)

とか、

処理部分を別スレッドにして実行はスレッドに任せておき、
結果だけをもらって表示する。

といった方法があります。

スレッドがきちんと実装される前はタイマーを使ってましたが、
スレッドがきちんと実装されてからスレッドを使うことが多いです。(私は)


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました