我有一个.NET应用程序,它在单独的线程中(每5秒一次)定期调用非托管方法。而且这种方法有时会崩溃。我需要以某种方式处理这种情况。主要问题是我无法更改c ++非托管代码。
我尝试了不同的方式来处理此异常,但是没有成功:
通常
尝试{}捕获(异常例外){}
和
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()是一种不好的做法。在这种情况下的最佳做法是什么?
提前致谢。