2
AppDomain.CurrentDomain.UnhandledException += 
    new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Forms.Application.ThreadException += 
    new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

是我剪掉了一个类似问题的代码,但它无法解决我的问题。我要做的是捕获崩溃并正确处理我的应用程序,这样我就不会留下内存转储/跟踪/系统托盘图标

4

1 回答 1

0

如果您使用调试器或任务管理器终止进程,则无法处理这种情况——无论是 .NET 应用程序还是本机应用程序。

在 CLR 中处理操作系统异常可能是可能的,但不建议这样做。请参阅是否可以在 .NET 中捕获访问冲突异常?更多细节。

在几乎所有情况下,您的进程都不应该以这些方式终止,即使这样,也不需要正确处理,因为操作系统会正确关闭几乎所有句柄:文件、连接等。终止的应用程序留下托盘图标是 20-资源管理器中的一岁错误,您对此无能为力。让我们只希望微软有一天会修复它。

于 2013-07-11T04:37:17.047 回答