小编Ale*_*gin的帖子

.NET中非托管本机异常/崩溃的处理

我有一个.NET应用程序,它在单独的线程中(每5秒一次)定期调用非托管方法。而且这种方法有时会崩溃。我需要以某种方式处理这种情况。主要问题是我无法更改c ++非托管代码。

我尝试了不同的方式来处理此异常,但是没有成功:

  1. 通常

    尝试{}捕获(异常例外){}

try {} catch {}
Run Code Online (Sandbox Code Playgroud)

2
AppDomain.CurrentDomain.UnhandledException + = CurrentDomain_UnhandledException;

3 System.Windows.Threading.Dispatcher.CurrentDispatcher.UnhandledException + = CurrentDispatcher_UnhandledException;

4. Application.Current.DispatcherUnhandledException + = Current_DispatcherUnhandledException;

无论如何,它只是默默地崩溃。

从逻辑上讲,应该重新启动该线程,但是我知道Thread.Abort()是一种不好的做法。在这种情况下的最佳做法是什么?

提前致谢。

.net multithreading exception-handling unmanaged exception

1
推荐指数
1
解决办法
522
查看次数