forループを用いた場合にも、操作可能にするには?

解決


初心者  2004-07-11 00:21:52  No: 53954

初歩的な質問で恐縮ですが、
C***View クラスの中である関数(OnStart(void))を作成し、

void C***Viwe::OnStart(void){
     .....

     for(int i=0; i<10000; i++){
          MainLearning();
     }
     .....
}

となるように設定しました。
このMainLearning()がプログラムの根幹をなす部分なのですが、
forループが終了するまで、一切の入力・クリック等を受け付けません。
これを解決する方法はありますか?
MainLearning()を繰り返し実行している間も、
メニューバーをクリックしたり、ウィンドウを動かせれば良いのですが。


シャノン  2004-07-11 00:40:27  No: 53955

1.簡単だがお勧めしない方法
  for ループ中にメッセージポンプを挿入する。

2.面倒だが理想的な方法
  for ループをスレッドとして切り出す

代表的な解決手段としては、以上2通りでしょうか。


初心者  2004-07-11 03:24:03  No: 53956

シャノンさん、適切な返答ありがとうございます。

スレッドによる方法を試し、
簡単なプログラムなら動くようになりました。
いま作っているものではまだエラーが出てしまいますが・・。
これも調べていけば、時間の問題だと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加