質問: DialogResult.OK) { //プログラムの終了 Environment.Exit(0); } ``` ### 試したこと 特にスレッドやタスクを組んだりしてはいないです
回答: 手元でコンソールアプリを作って、ご提示のコードをそのまま実行してみましたが、 こちらの環境ではおっしゃる現象は再現しませんでした。 開発環境や実行環境を明示されていないのでなんともいえませんが、 本当にご提示のコードだけで同現象になりますか? * スレッドやタスクは使っていないとおっしゃっていますが、 一番可能性があるのはMainでないスレッドから呼ばれていることかなと思いました。 * ダイアログを閉じるより先に元のアプリが終了されてしまっている場合などは 当然ダイアログも勝手に閉じることになります。 * アプリケーションのMainメソッドに `[STAThread]` 属性を付与してもだめでしょうか * 前の方がおっしゃっているように、実はMessageBoxでなく自作のFormだとかでしたら、 Show()メソッドで呼び出した際や、自分でDialogResultの値を設定した場合などに同現象が起こりえます。 * ちょっと考えにくいですが、他のセキュリティソフト等でダイアログを勝手に閉じてしまうようなものが もしかしたらあるかもしれません。 あとは、コンソールアプリでMessageBoxを表示するという行為自体がイレギュラーではあるので、 可能ならばコンソールへのメッセージ出力を代替とするのが良いかもしれません。