继承的WPF应用程序在App.xaml.cs中设置Dispatcher.UnhandledException:
public App() : base()
{
this.Dispatcher.UnhandledException += OnDispatcherUnhandledException;
}
除了偶尔会出现“程序已停止工作”而未调用OnDispatcherUnhandledException的情况。 根据其他线程的大量讨论,正在添加以下内容:
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
,但不知道这有什么帮助。 谁能解释Dispatcher和CurrentDomain UnhandledException之间的区别?
答案 0 :(得分:2)
似乎您在另一个线程中发生了异常。您可以调试CurrentDomain_UnhandledException来了解它们的来源。 Dispatcher.UnhandledException处理与该Dispatcher关联的特定UI线程上的异常。如果只有一个UI线程(通常),则它应处理这些异常。如果其他线程(最有可能是非UI线程)中有异常,则可以使用AppDomain.CurrentDomain.UnhandledException处理这些异常。
答案 1 :(得分:0)
您可能会遇到一些无法捕获的异常。例如。 StackOverflowException
,ThreadAbortException
和AccessViolationException
(通常来自错误的本机代码)。
阅读this answer了解更多信息。