C# 外螺纹异常不存在';未在DispatcherUnhandledException事件中捕获
我正在尝试使用事件处理任何后台线程异常,因为我正在捕获它们并将它们写入日志。 我在下面尝试过这样做,但事件没有引发,我的应用程序崩溃了C# 外螺纹异常不存在';未在DispatcherUnhandledException事件中捕获,c#,wpf,multithreading,exception,dispatcher,C#,Wpf,Multithreading,Exception,Dispatcher,我正在尝试使用事件处理任何后台线程异常,因为我正在捕获它们并将它们写入日志。 我在下面尝试过这样做,但事件没有引发,我的应用程序崩溃了 public class MainWindow : Window { public MainWindow() { client = new Client(); client.OnSocketError += (s, e) => Dispatcher.Invoke(() => throw e.Except
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");
}
}
是否可以将异常重新抛出到主线程
请注意,当从主线程引发异常时,事件被引发。我替换了这一行:
Dispatcher.Invoke(() => throw e.Exception);
关于这一点:
Dispatcher.BeginInvoke(new Action(() => throw e.Exception));
现在它工作正常了
我猜原因是Invoke方法使EventHandler被阻塞,而现在BeginInvoke方法没有