私は、プレーンを使用して実装されているプロジェクトに取り組んでいthreads
ます。アプリケーションで予想される例外のほとんどは処理されますが、スレッドの 1 つが予期しない例外をスローし、アプリケーションがクラッシュする場合があります (アプリケーションは両方I/O
にClient-Server
基づいているため、すべての例外を処理することは事実上不可能です)。
UnhandledExceptionHandler
これを修正するために、アプリケーションがクラッシュするのではなくわかりやすいメッセージを表示するように、グローバルを定義しようとしています。これは私が試したものです:
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
// The rest of the startup logic goes here
}
void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Utilities.DisplayUnhandledException((Exception)e.ExceptionObject);
}
}
しかし、これはうまくいきません。はCurrentDomain_UnhandledException
呼び出されません。残念ながら、アプリケーションの構造を変更することはできません。つまり、Task Parallel Library を使用することはできません。なぜこれが機能しないのかわかりません。スレッドでスローされた例外を処理する他の方法はありますか? どんな助けでも大歓迎です。