2008-10-28 13 views
7

Estoy buscando forzar el cierre de mi aplicación y devolver un código de salida. Eché un vistazo a MSDN y puedo ver que en WPF la aplicación tiene un método de apagado que toma un código de error como parámetro, pero no parece haber uno para System.Windows.Forms.Application.Forzar el apagado de la aplicación (.net)

Puedo ver Application.Exit() pero no es una forma de devolver un código de error.

¿Alguien sabe de mano si esto es posible?

Gracias

Respuesta

13

Puede utilizar System.Environment.Exit (yourExitCode).

+0

Cualquier razón para usar Environment.Exit sobre Application.Exit además del código de errorS? – Sekhat

+1

Application.Exit necesita usarse en aplicaciones de Winforms, environment.exit() se puede usar en programas que no son de GUI. –

2

establezca la propiedad ExitCode en la clase System.Environment y al salir. p.ej.

System.Environment.ExitCode = 1 
Application.Exit() 
2

Añadir una propiedad ExitCode (o algo similar) a su clase de formulario:

class MyForm : Form { 
    public int ExitCode { get; set; } 

    void ShutDownWithError(int code) { 
    ExitCode = code; 
    Close(); 
    } 
} 

En algún lugar de su código tiene:

static void Main() { 
    // ... 
    MyForm form = new MyForm(); 
    Application.Run(myForm); 
} 

Cambio eso en:

static void Main() { 
    // ... 
    MyForm myForm = new MyForm(); 
    Application.Run(myForm); 
    Environment.Exit(myForm.ExitCode); 
} 

Cuando ShutdownWithE Se llama al método rror en su formulario, cerrará el formulario principal. Esto saltará del ciclo iniciado con Application.Run. Luego, simplemente busca el código de salida y cancela el proceso con Environment.Exit.

+0

Gracias, creo que nuestro caso es un poco más complicado porque tenemos que cerrar en el controlador de excepción global. Pero el principio es el mismo, creo. – Duncan

Cuestiones relacionadas