2010-03-31 20 views
43

tengo un pequeño programa de consola de C# como¿Cómo ejecutar el código antes de la salida del programa?

Class Program 
{ 
    static void main(string args[]) 
    { 
    } 
} 

Ahora quiero hacer algo después de la salida principal(). Traté de escribir un deconstructor para el Programa de la Clase, pero nunca se golpea.

¿Alguien sabe cómo hacerlo?

Muchas gracias

Respuesta

97

Prueba el caso de ProcessExitAppDomain:

using System; 
class Test { 
    static void Main(string[] args) 
    { 
     AppDomain.CurrentDomain.ProcessExit += new EventHandler (OnProcessExit); 
     // Do something here 
    } 

    static void OnProcessExit (object sender, EventArgs e) 
    { 
     Console.WriteLine ("I'm out of here"); 
    } 
} 
+0

Esto funciona incluso mejor. – 7wp

+0

Mi respuesta fue incorrecta, este es el mejor enfoque. – ace

+0

Esta es la solución más genérica, pero tenga cuidado aquí, ya que el evento 'ProcessExit' tiene un límite de tiempo de tres segundos (como los finalizadores son cuando la aplicación se apaga). http://msdn.microsoft.com/en-us/library/system.appdomain.processexit.aspx –

Cuestiones relacionadas