控制台应用程序C#的关闭事件

时间:2012-07-02 09:54:29

标签: c# events .net-4.0 event-handling console-application

我怎么知道我的C#控制台应用程序什么时候停止?是否有任何事件或类似情况?

谢谢!

2 个答案:

答案 0 :(得分:25)

使用应用程序域的ProcessExit事件

   class Program
    {
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);           


        }

        static void CurrentDomain_ProcessExit(object sender, EventArgs e)
        {
            Console.WriteLine("exit");
        }
    }

答案 1 :(得分:5)

处理事件System.Console.CancelKeyPress可能会对您有所帮助。

MSDN explains它如何处理此事件以及处理此事件时需要处理的其他事项,摘录如下:

  

此事件与。一起使用   System.ConsoleCancelEventHandler和System.ConsoleCancelEventArgs。   CancelKeyPress事件使控制台应用程序能够拦截   CTRL + C信号,以便应用程序可以决定是否继续   执行或终止。

     

使用此事件可以明确控制应用程序的响应方式   CTRL + C信号。如果您的应用程序有简单的要求,那么   可以使用TreatControlCAsInput属性而不是此事件。

     

此事件的事件处理程序在线程池线程上执行。