2012-07-02 22 views
6

¿Cómo puedo saber cuándo se detendrá mi aplicación de consola C#? ¿Hay algún evento o algo así?Evento de apagado para la aplicación de consola C#

Gracias!

+0

¿Desea que el código salga de la aplicación? –

+3

[esta pregunta se es similar con la suya] [1] [1]: http://stackoverflow.com/questions/1119841/net-console-application-exit-event – greijner

Respuesta

23

Uso ProcessExit caso del dominio de aplicación

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"); 
     } 
    } 
+0

Cabe señalar que su código en CurrentDomain_ProcessExit solo tendrá unos segundos para ejecutarse antes de que la aplicación finalice de todos modos. –

5

controlar el evento System.Console.CancelKeyPress podría ayudarle.

MSDN explains es cómo manejar este evento junto con otras cosas que usted necesita para cuidar durante la manipulación de este evento, extracto:

Este evento se utiliza en conjunción con System.ConsoleCancelEventHandler y System.ConsoleCancelEventArgs . El evento CancelKeyPress habilita una aplicación de consola para interceptar la señal CTRL + C para que la aplicación pueda decidir si continuar ejecutándose o finalizando.

Utilice este evento para controlar explícitamente cómo responde su aplicación a la señal CTRL + C. Si su aplicación tiene requisitos simples, puede usar la propiedad TreatControlCAsInput en lugar de este evento.

El controlador de eventos para este evento se ejecuta en un hilo del grupo de subprocesos.

Cuestiones relacionadas