「汎用画面.cs」があり、計算用プロセスが以下のような流れで処理を行っています。
順序1:計算用プロセス起動
順序2:計算用プロセスが汎用画面.csをShowDialogで表示(確認の用途で表示。OK、Cancelボタンあり)
順序3:OKが押されたら、計算用プロセスが、汎用画面.csをShowDialogで表示(プログレスバーの用途で表示)
順序4:計算用プロセスが計算処理実施
順序5:計算用プロセスが汎用画面.csを閉じる(プログレスバー終了)。
順序6:計算用プロセスが汎用画面.csをShowDialogで表示(メッセージ表示用。OKボタンあり)
順序7:計算用プロセスが汎用画面.csでOKボタンが押されたら処理を終了する。
順序6でOKボタンが押されたときに、汎用画面.csでOKイベントが発生しないのですが、
何故こうなるのでしょうか?OKボタンの設定はプロパティのDialogResultから行っています。
ちなみに、いろいろ考えて以下のようなコーディングを行ったところ、
動作はするようになったのですが、理屈はいまいちわかりません。
(最大文字数を越えるため動作する流れはコメント欄に記載します。)
コメント(5件)
順序1:計算用プロセス起動
順序2:計算用プロセスが汎用画面.csをShowDialogで表示(確認の用途で表示。OK、Cancelボタンあり)
順序3:OKが押されたら、計算用プロセスが汎用画面表示用のプロセスを起動。
順序4:汎用画面表示用のプロセスが、汎用画面.csをShowDialogで表示(プログレスバーの用途で表示)
順序5:計算用プロセスが計算処理実施
順序6:計算用プロセスが、汎用画面表示用プロセスに対し、処理終了の再開を指示(Join)をする。
順序7:汎用画面表示用のプロセスが、汎用画面.csを閉じる(プログレスバー終了)。
順序8:汎用画面表示用のプロセスが、汎用画面.csをShowDialogで表示(メッセージ表示用。OKボタンあり)
順序9:汎用画面表示用のプロセスが、汎用画面.csでOKボタンが押されたら自らを終了する。
順序10:汎用画面表示用のプロセスが終了後、計算用プロセスが終了する。
コメントありがとうございます。
後でサンプルコードを作成して貼り付けることに致します。
もし気がつくことがありましたら
ご指摘いただけると嬉しいです。
質問者に説教する糞ヲヤジ
こんなヤツが回答してきたら、「不適切な回答」にチェックを入れよう!
サンプルがいまいちな出来なので
更新を怠っていたら
流れてしまいました。申し訳ないです。