Respuestas:
Puedes usar Environment.Exit(0);
yApplication.Exit
Environment.Exit(0)
Está más limpio .
Environment.Exit
requiere que tenga permisos SecurityPermissionFlag.UnmanagedCode, lo que puede ser problemático para algunos.
Varias opciones, por orden de la forma más adecuada:
System.Environment.Exit
(¡ no portátil! Ver más abajo )Editado el 9/2013 para mejorar la legibilidad
Regresar con un código de salida específico: como señala Servy en los comentarios, puede declarar Main con un int
tipo de retorno y devolver un código de error de esa manera. Entonces, realmente no hay necesidad de usar Environment.Exit a menos que necesite terminar con un código de salida y no pueda hacerlo en el método Main. Lo más probable es que pueda evitarlo lanzando una excepción y devolviendo un código de error en Main si alguna excepción no controlada se propaga allí. Si la aplicación es multiproceso, probablemente necesitará aún más repetitivo para terminar correctamente con un código de salida, por lo que es mejor que solo llame a Environment.Exit.
Otro punto en contra del uso Evironment.Exit
, incluso al escribir aplicaciones multiproceso, es la reutilización . Si alguna vez desea reutilizar su código en un entorno que sea Environment.Exit
irrelevante (como una biblioteca que puede usarse en un servidor web), el código no será portátil. La mejor solución aún es, en mi opinión, usar siempre excepciones y / o valores de retorno que representen que el método alcanzó algún estado de error / finalización. De esa manera, siempre puede usar el mismo código en cualquier entorno .NET y en cualquier tipo de aplicación. Si está escribiendo específicamente una aplicación que necesita devolver un código de salida o terminar de manera similar a lo que Environment.Exit
hace, puede continuar y envolver el hilo en el nivel más alto y manejar los errores / excepciones según sea necesario.
Las aplicaciones de consola se cerrarán cuando la función principal haya terminado de ejecutarse. Un "retorno" logrará esto.
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("I'm running!");
return; //This will exit the console application's running thread
}
}
Si devuelve un código de error, puede hacerlo de esta manera, al que se puede acceder desde funciones fuera del hilo inicial:
System.Environment.Exit(-1);
Puedes usar Environment.Exit(0)
y Application.Exit
.
Environment.Exit()
: finaliza este proceso y le da al sistema operativo subyacente el código de salida especificado.