Respostas:
Você pode usar Environment.Exit(0);
eApplication.Exit
Environment.Exit(0)
é mais limpo .
Environment.Exit
requer que você tenha permissões SecurityPermissionFlag.UnmanagedCode - o que pode ser problemático para alguns.
Várias opções, por ordem da maneira mais apropriada:
System.Environment.Exit
( não é portátil! Veja abaixo )Editado em 9/2013 para melhorar a legibilidade
Retornando com um código de saída específico: Como Servy aponta nos comentários, você pode declarar Main com um int
tipo de retorno e retornar um código de erro dessa maneira. Portanto, realmente não há necessidade de usar Environment.Exit, a menos que você precise finalizar com um código de saída e não possa fazê-lo no método Main. Provavelmente, você pode evitar isso lançando uma exceção e retornando um código de erro no Principal se houver alguma exceção não tratada propagada para lá. Se o aplicativo for multiencadeado, você provavelmente precisará de mais clichês para finalizar corretamente com um código de saída, para que seja melhor chamar apenas Environment.Exit.
Outro ponto contra o uso Evironment.Exit
- mesmo ao escrever aplicativos multithread - é a reutilização . Se você quiser reutilizar seu código em um ambiente que seja Environment.Exit
irrelevante (como uma biblioteca que pode ser usada em um servidor da Web), o código não será portátil. A melhor solução ainda é, na minha opinião, sempre usar exceções e / ou valores de retorno que representam que o método atingiu algum estado de erro / conclusão. Dessa forma, você sempre pode usar o mesmo código em qualquer ambiente .NET e em qualquer tipo de aplicativo. Se você estiver escrevendo especificamente um aplicativo que precise retornar um código de saída ou terminar de maneira semelhante ao que Environment.Exit
é possível, poderá seguir em frente e agrupar o encadeamento no nível mais alto e lidar com os erros / exceções, conforme necessário.
Os aplicativos do console serão encerrados quando a função principal terminar a execução. Um "retorno" conseguirá isso.
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("I'm running!");
return; //This will exit the console application's running thread
}
}
Se você estiver retornando um código de erro, poderá fazê-lo desta maneira, acessível a partir de funções fora do encadeamento inicial:
System.Environment.Exit(-1);
Você pode usar Environment.Exit(0)
e Application.Exit
.
Environment.Exit()
: finaliza esse processo e fornece ao sistema operacional subjacente o código de saída especificado.