IsBackground プロパティを true に設定した C# のスレッドを使用しています。アプリケーションが閉じるまで、スレッドはループ内でいくつかのコードを実行しています。アプリケーションが閉じられると、スレッドも実行を停止します (IsBackground = true を設定したため)。
アプリケーションはどのようにスレッドを強制終了しますか? ThreadAbortException が出ないので、abort を呼んでやっていないようです。舞台裏で起こっていますか?ループの最終ブロックでロールバックを行いたいと思います。
自分でスレッドで中止を呼び出すことができることはわかっていますが、アプリケーションがバックグラウンド スレッドを閉じる方法と、スレッド内から応答できるかどうかを知りたいです。Application.ApplicationExit イベントをサブスクライブできることはわかっていますが、サービスと winform の両方でこのコードを実行していて、ループ内で例外をキャッチしたいので、finally ステートメントでロールバックできます。