Réponses:
Vous pouvez utiliser Environment.Exit(0);
etApplication.Exit
Environment.Exit(0)
est plus propre .
Environment.Exit
nécessite que vous ayez les autorisations SecurityPermissionFlag.UnmanagedCode - ce qui peut être gênant pour certains.
Plusieurs options, par ordre de manière la plus appropriée:
System.Environment.Exit
( non portable! Voir ci-dessous )Modifié le 9/2013 pour améliorer la lisibilité
Retour avec un code de sortie spécifique: Comme le souligne Servy dans les commentaires, vous pouvez déclarer Main avec un int
type de retour et renvoyer un code d'erreur de cette façon. Il n'est donc vraiment pas nécessaire d'utiliser Environment.Exit sauf si vous devez terminer avec un code de sortie et que vous ne pouvez pas le faire dans la méthode Main. Vous pouvez très probablement éviter cela en lançant une exception et en renvoyant un code d'erreur dans Main si une exception non gérée s'y propage. Si l'application est multi-thread, vous aurez probablement besoin d'encore plus de passe-partout pour terminer correctement avec un code de sortie, il vaut donc mieux appeler simplement Environment.Exit.
Un autre point contre l'utilisation Evironment.Exit
- même lors de l'écriture d'applications multi-threads - est la réutilisabilité . Si jamais vous souhaitez réutiliser votre code dans un environnement qui Environment.Exit
n'est pas pertinent (comme une bibliothèque qui peut être utilisée dans un serveur Web), le code ne sera pas portable. À mon avis, la meilleure solution consiste toujours à toujours utiliser des exceptions et / ou des valeurs de retour qui indiquent que la méthode a atteint un état d'erreur / de fin. De cette façon, vous pouvez toujours utiliser le même code dans n'importe quel environnement .NET et dans tout type d'application. Si vous écrivez spécifiquement une application qui doit renvoyer un code de sortie ou se terminer d'une manière similaire à ce qui se Environment.Exit
passe, vous pouvez alors continuer et envelopper le thread au plus haut niveau et gérer les erreurs / exceptions selon les besoins.
Les applications de console se fermeront une fois la fonction principale terminée. Un «retour» y parviendra.
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("I'm running!");
return; //This will exit the console application's running thread
}
}
Si vous retournez un code d'erreur, vous pouvez le faire de cette façon, qui est accessible à partir de fonctions en dehors du thread initial:
System.Environment.Exit(-1);
Vous pouvez utiliser Environment.Exit(0)
et Application.Exit
.
Environment.Exit()
: termine ce processus et donne au système d'exploitation sous-jacent le code de sortie spécifié.