現在、ユーザーがアプリケーションを終了したい場合、必要ないくつかのこと (サーバーからの切断、ユーザー データの保存など) を行ってから、次のことを行います。
- ブール値を使用してすべてのメインループを終了します
- まだ実行中のスレッドを中止します (通常、サーバーのポーリング スレッド)
- Application.Exit(); を呼び出してください。
これは終了するのに数秒かかり、実際の目的には役立ちません (すべてがサーバーに既に保存されているため、そこで何が起こるかはあまり気にしません)。
代わりにこれを使用すると、考えられる欠点なしで即座に終了しました。
System.Diagnostics.Process.GetCurrentProcess().Kill();
プロセスを終了して、CLR に AppDomain を削除させないのはなぜですか?
共有リソース (IO ファイル ハンドラーなど) を慎重に破棄することが重要であることはわかっています (だから、それに答えないでください:))。