.net 4.0-检测最后一次运行的应用程序在c#中崩溃



当我的应用程序开始tun时,我想知道它是否在上次运行时崩溃或成功关闭。请注意,应用程序应该检测到它本身,不要使用外部应用程序进行检查。

我如何使用C#来做到这一点?

应用程序应该在某种持久性存储上设置一个"优雅关闭"标志,这是它在关闭时所做的最后一件事。

当它启动时,检查是否设置了此标志。若并没有,那个么上次运行时要么崩溃,要么被强制终止。如果是,请将其重置,为当前运行做准备。

您可以在Program.cs 中使用

#if !DEBUG
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
#endif
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmMain());

通过这种方式,您将处理所有错误,您可以记录它们,甚至在出现严重故障时重新启动应用程序,并为用户恢复会话。注意#if !DEBUG条件,没有它将很难调试,因为所有未处理的异常都将落在这里。

最新更新