我有.NET 4.0 Windows Forms应用程序。我编写代码来捕获应用程序结束的所有事件。
[HandleProcessCorruptedStateExceptions]
[SecurityCritical]
[STAThread]
static void Main()
{
try
{
SystemEvents.SessionEnding += SystemEvents_SessionEnding;
Application.ThreadException += HandleError;
AppDomain.CurrentDomain.UnhandledException += UnhandledException;
Application.ApplicationExit += ApplicationExit;
AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit;
AppDomain.CurrentDomain.DomainUnload += CurrentDomain_DomainUnload;
TaskScheduler.UnobservedTaskException += new EventHandler<UnobservedTaskExceptionEventArgs>(TaskScheduler_UnobservedTaskException);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmMain());
Logger.Info("Normally ending application inner level",MethodBase.GetCurrentMethod());
}
catch (Exception ex)
{
Logger.Error(MethodBase.GetCurrentMethod(),ex,true);
}
Logger.Info("Normally ending application outter level", MethodBase.GetCurrentMethod());
}
但有时我会终止应用程序。没有任何消息进入内部日志。并且没有任何消息进入Windows事件日志。问题是 - 如何捕获应用程序终止(我想在内部或WinEvents中看到一些东西)?