编辑:
我真的很生气!我已经连接了System.Windows.Application.Current.DispatcherUnhandledException和currentDomain.UnhandledException,我的问题是当我将代码从另一个线程调度到主线程时。当主线程中发生异常时,它会被UnhandledException处理程序而不是DispatcherUnhandledException捕获。这是正确的行为吗?这是一个示例代码
//main method code
Thread t = new Thread(Thread_function);
t.Start();
public void Thread_function()
{
Action startProcessAction = () => function_throwException
Dispatcher.Invoke(startProcessAction);
}
public void function_throwException()
{
throw new Exception("only gets caught by currentDomain.UnhandledException!");
}
答案 0 :(得分:0)
事实证明它就是这样。对我来说没有意义,如果框架会以主线程捕获异常的方式行事,我会更喜欢,但它并不是这样。
所以你最好小心你的代码。