DispatcherUnhandledException事件未捕获外部线程异常

我正在尝试使用App.DispatcherUnhandledException事件处理任何后台线程异常,因为我已全面捕获它们并将它们写入那里的日志中。 我曾尝试通过以下方式做到这一点,但活动并未引发,我的应用程序崩溃了。

public class MainWindow : Window
{
    public MainWindow()
    {
        client = new Client();
        client.OnSocketError += (s,e) => Dispatcher.Invoke(() => throw e.Exception); // re-throwing
        client.Connect("192.168.1.5","1234");
    }
}

是否可以将异常重新引发到主线程?

请注意,从主线程引发异常时会引发该事件。

chengzhangba 回答:DispatcherUnhandledException事件未捕获外部线程异常

我替换了这一行:

Dispatcher.Invoke(() => throw e.Exception);

有了这个:

Dispatcher.BeginInvoke(new Action(() => throw e.Exception));

现在它可以正常工作了。

我想原因是 Invoke 方法使EventHandler处于阻塞状态,而现在 BeginInvoke 方法却没有。

本文链接:https://www.f2er.com/2411382.html

大家都在问