編集
この質問への回答は、助けてくれてありがとう:)しかし、私は次のものを使用することになりました
元の質問:
アプリケーションがクラッシュしたときにエラー メッセージを表示したいと考えています。
現在私は持っています:
App.xaml
:
<Application x:Class="WpfApplication5.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DispatcherUnhandledException="App_DispatcherUnhandledException" // <----------------
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>
の分離コードApp.xaml
:
namespace WpfApplication5
{
public partial class App : Application
{
private void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
MessageBox.Show("Caught Unhandled Exception!");
}
}
}
メインスレッドでエラーが発生した場合、このソリューションはうまく機能します。今私の問題は、別のスレッドでも発生するエラーをどのようにキャッチできるかということです。
つまり、このボタンを押すと、例外をキャッチすることができます: (App_DispatcherUnhandledException
が呼び出されます!)
private void button1_Click(object sender, RoutedEventArgs e)
{
int.Parse("lkjdsf");
}
しかし、私はこの例外をキャッチできません:
private void button1_Click(object sender, RoutedEventArgs e)
{
Task.Factory.StartNew(() =>
{
int.Parse("lkjdsf");
});
}
メインスレッドで発生するかどうかに関係なく、すべての例外をキャッチするにはどうすればよいですか?