Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 外螺纹异常不存在';未在DispatcherUnhandledException事件中捕获_C#_Wpf_Multithreading_Exception_Dispatcher - Fatal编程技术网

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方法没有