Desde fuera de la aplicación, ¿hay alguna diferencia entreDiferencia entre Environment.Exit y simple retorno 2 de la principal
...
Environment.Exit(2)
y
static int Main()
{
...
return 2;
}
?
Desde fuera de la aplicación, ¿hay alguna diferencia entreDiferencia entre Environment.Exit y simple retorno 2 de la principal
...
Environment.Exit(2)
y
static int Main()
{
...
return 2;
}
?
La diferencia más obvia es que puede llamar a Environment.Exit desde cualquier lugar de su código. Aparte de eso:
Environment.Exit
eliminará el proceso de todos modos.Environment.Exit
finaliza el proceso sin desenrollando la pila y ejecutando finalmente los bloques (al menos según mis experimentos). Obviamente, cuando regrese del Main
, ya estará en el nivel superior en lo que respecta al código administrado.Environment.Exit
exige el permiso de seguridad adecuada, por lo que no va a funcionar para aplicaciones menos confiables.Después de ver la actualización de la pregunta, no estoy del todo seguro de lo que quiere decir. En ambos casos, el proceso acaba de finalizar con un código de 2 ...
Environment.Exit(2)
se puede utilizar en todas partes. return 2
solo dentro de la función Main()
.
+1 Declarando lo obvio, pero un buen punto, no obstante. –
Pregunta actualizada: ¿hay alguna diferencia desde fuera de la aplicación? –
Si usted está haciendo una prueba de unidad y llamando principal
Program.Main(args);
continuación Environment.Exit reflejará siempre un fracaso. Donde el uso de retorno funcionará como se espera.
Consulte http://stackoverflow.com/questions/713805/net-finalizers-and-exit0 para obtener detalles sobre la finalización al final del proceso. –