检测到应用程序的上次运行已在c#中崩溃

时间:2013-02-07 10:24:43

标签: c# .net-4.0 crash

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

我如何使用C#?

2 个答案:

答案 0 :(得分:6)

应用程序应该在某种持久存储上设置一个“正常关闭”标志,作为关闭时的最后一件事。

启动时,检查是否设置了此标志。如果没有,上次你跑了你要么崩溃要么被强行终止。如果是,请重置它以准备当前运行。

答案 1 :(得分:0)

您可以在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条件,没有它将很难调试,因为所有未处理的异常将落在这里。