应用程序终止时如何捕获?

时间:2014-03-23 16:14:09

标签: .net multithreading winforms events exception

我有.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中看到一些东西)?

0 个答案:

没有答案