C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 76 を表示中)
■44734 / )  Re[9]: VistaとWaitForSingleObjectについて
□投稿者/ kashi (8回)-(2009/12/16(Wed) 20:01:27)
No44726 (とっちゃん さん) に返信
> ■No44722 (kashi さん) に返信
>
>>長い説明ありがとうございます。
>>EnableWindow( FALSE )はすでにコーディング済みです。
>>1.も2.も理解は出来るのですが、仮に実装できた場合、親画面でマウスでクリックしまくっても
>>アプリケーションが応答しない旨のダイアログが表示されなくなりますか?
>>どうも別スレッドで今までのように同期させていた方がいいような気がしてきました・・・
>>
> せめて試してみるくらいはしてほしいなぁ。。。と思うのですがね。
>
> ボタンを押すと、ダイアログ自体をEnableWindow(FALSE)をするだけのテスト用のダイアログアプリを作成して
> 実際に動かしてみるということをするだけだと思うんですけど...
>
> 必要があればデバッガなども動かせばいいと思いますが、どういう状態になるかよくわかると思います。
> 終了も、タスクマネージャからやったらどうなるか?などいろいろ試してみるといいと思いますよ。
>

どちらも試してみました。結果NGです。
というのも、処理的にはどちらもうまくいっています。
実は子画面を呼ばず、メニューやボタンクリックのイベント内で

EnableWindow(FALSE)
Sleep(10000)
EnableWindow(TRUE)

として親画面の無効化⇒10秒Wait⇒親画面の有効化
だけのステップにし、親画面のボタンやメニュー辺りを
マウスで連打すると「~アプリケーションは応答していません」のダイアログが
出てきてしまいます。
→解決策を確認してプログラムを終了します
→プログラムを終了します
→プログラムの応答を待ちます
の3択のダイアログです。
そもそもVistaが無効化した画面に対し上記マウスの操作をすると応答なしを
判断してダイアログが出るのが問題のように思えます。
処理は書き込んでいただいた方のを参考に対応したと思いますが
このVistaだけダイアログが出てきてしまうのがどうにも解決できません・・・(涙)

返信 編集キー/


管理者用

- Child Tree -