Відповіді:
Ви можете використовувати Environment.Exit(0);
іApplication.Exit
Environment.Exit(0)
чистіше .
Environment.Exit
потрібно мати дозволи SecurityPermissionFlag.UnmanagedCode - які для деяких можуть бути проблемними.
Кілька варіантів, за порядком найбільш підходящого способу:
System.Environment.Exit
( не портативно! Див. Нижче )Відредаговано 9/2013 для поліпшення читабельності
Повернення з конкретним кодом виходу: Як в коментарях вказує Сервій, ви можете оголосити Main з int
типом повернення і таким чином повернути код помилки. Тож насправді немає необхідності використовувати Environment.Exit, якщо вам не потрібно скасувати код виходу і неможливо зробити це методом Main. Найімовірніше, ви можете цього уникнути, кинувши виняток і повернувши код помилки в Main, якщо там розповсюджується якийсь необроблений виняток. Якщо додаток багатопотоковий, вам, мабуть, знадобиться ще більше шаблону для належного завершення з кодом виходу, так що вам може бути краще просто зателефонувати в Environment.Exit.
Ще один момент проти використання Evironment.Exit
- навіть при написанні багатопотокових програм - це повторне використання . Якщо ви коли-небудь захочете повторно використовувати свій код у середовищі, яке не має Environment.Exit
значення (наприклад, бібліотеці, яка може використовуватися на веб-сервері), код не буде переносним. Найкращим рішенням, на мою думку, є завжди використовувати винятки та / або повертаючі значення, які означають, що метод досяг певної помилки / стану закінчення. Таким чином, ви завжди можете використовувати один і той же код у будь-якому середовищі .NET і в будь-якому типі додатків. Якщо ви спеціально пишете додаток, якому потрібно повернути вихідний код або завершити таким чином, як Environment.Exit
це робиться, ви можете піти вперед і обернути нитку на найвищому рівні та обробляти помилки / винятки за необхідності.
Консольні програми вийдуть, коли основна функція закінчиться. «Повернення» цього досягне.
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("I'm running!");
return; //This will exit the console application's running thread
}
}
Якщо ви повертаєте код помилки, ви можете зробити це таким чином, який доступний через функції поза початковою ниткою:
System.Environment.Exit(-1);
Ви можете використовувати Environment.Exit(0)
і Application.Exit
.
Environment.Exit()
: завершує цей процес і надає базовій операційній системі вказаний код виходу.