-1

アプリケーションが調整を開始したときに、最後に実行したとき、クラッシュしたのか、正常に閉じたのかを知りたいです。アプリケーションはそれ自体を検出する必要があり、外部アプリケーションを使用してこれをチェックしないように注意してください。

C#を使用してそれを行うにはどうすればよいですか?

4

2 に答える 2

6

アプリケーションは、シャットダウン時に最後に行うこととして、ある種の永続ストレージに「正常にシャットダウン」フラグを設定する必要があります。

起動時に、このフラグが設定されているかどうかを確認してください。そうでない場合は、前回実行したときにクラッシュするか、強制的に終了しました。そうである場合は、現在の実行に備えてリセットします。

于 2013-02-07T10:27:27.360 に答える
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処理の例外はすべてここにあるため、条件がないとデバッグが困難になります。

于 2013-02-07T10:37:46.763 に答える