Respostas:
Você pode usar Environment.Exit(0);eApplication.Exit
Environment.Exit(0) é mais limpo .
Environment.Exitrequer 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 inttipo 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.Exitirrelevante (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.