当我的应用程序开始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
条件,没有它将很难调试,因为所有未处理的异常都将落在这里。