これは前の質問に関連しています。
私が今理解しようとしているのは、UIスレッドの例外がアプリケーションを終了するのを防ぐことができるのに、UI以外の例外はできないのはなぜかということです。
参考までに、この例を参照してください。
最も重要なことは、その場合に私ができることは、エラーレポートを送信するかどうかを尋ねるWindowsダイアログボックスを表示せずに、プロセスを「サイレントに」終了することです。
これは私のAppDomainUnhandledExceptionHandlerです:
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
try
{
// Maybe do some logging here if allowed
}
catch
{
}
// then just terminate the application
Application.Exit();
}
更新この回答
のコメントに照らして、最も重要なこととして、UIスレッドがメカニズムを介して未処理の例外を早期にキャッチできるようにするメカニズムについて詳しく知りたいことを明確にしておきたいと思います。そして、そのような振る舞いを非UIスレッドに実装できるかどうか。Application.ThreadException