質問: ### 前提・実現したいこと System.Diagnostics.Process.Start()で起動したアプリケーションを System.Diagnostics.Process.CloseMainWindow()で終了させて Application.ApplicationExitイベントを発生させたいです。 ### 発生している問題・エラーメッセージ Application.ApplicationExitに登録したイベントハンドラが実行されませんでした。 ### 試したこと イベントハンドラの設定し忘れ、 System.Diagnostics.Process.CloseMainWindow()の呼び忘れ、 タスクマネージャのプロセス などを確認してみましたが、 特に問題となるようなものは見つけることができませんでした。 ### 補足情報(言語/FW/ツール等のバージョンなど) 関係ないかもしれませんが、 起動させられたアプリケーションは Windowsフォームアプリケーションで 起動させたアプリケーションはUnityです。 Unity側のAwake()で起動させて Unity側のOnApplicationQuit()で終了させるようにしています。
回答: 流れを見ると、メインフォームを閉じた後に form.Foo() が呼ばれる想定のようですが、メインフォームを閉じたらフォームのインスタンスは無くなる可能性があるので、フォームのメソッドは触ってはいけません。 Foo() をフォームのメソッドでなくするか、ApplicationExit ではなく form.Closing で呼ぶようにするかしてみてください。