En este momento, cuando el usuario quiere salir de mi solicitud, hago las pocas cosas que tengo que (es decir, de desconectarse del servidor, guardar los datos de usuario ...) y luego hago lo siguiente:¿Por qué no debería usar Process.GetCurrentProcess(). Kill() para salir de mi aplicación WinForm?
- Salir de todos mis mainloops usando booleans
- abortar los hilos aún en ejecución (generalmente, el hilo de sondeo de mi servidor)
- amablemente llame a Application.Exit();
Esta toma unos segundos para salir, y no sirve a ningún propósito real (todo lo que ya se guarda en el servidor, por lo que no les importa lo que sucede allí)
Si utilizo este lugar, me consiguió la terminación inmediata sin inconveniente que puedo pensar:
System.Diagnostics.Process.GetCurrentProcess().Kill();
Por qué no me acabo de terminar mi proceso y dejar que el CLR caer el dominio de aplicación?
Sé que es importante deshacerse cuidadosamente de sus recursos compartidos (manejadores de archivos IO, etc.) (así que no responda :)), pero una vez hecho, ¿hay alguna razón real para salir limpiamente de mi aplicación?
Supongo que los bloques finalmente no se procesarán en este caso, lo que puede causar errores inesperados en el futuro cuando otra persona mantiene el código. –
@Hosam: Ese es un buen punto. ¿Por qué no lo publica como respuesta para que se pueda subir? – Brann
@Brann: Listo. Gracias por la sugerencia. –