Ответы:
Вы можете использовать Environment.Exit(0);
иApplication.Exit
Environment.Exit(0)
чище .
Environment.Exit
требуется наличие разрешений SecurityPermissionFlag.UnmanagedCode - что может быть проблематично для некоторых.
Несколько вариантов, в порядке наиболее подходящего способа:
System.Environment.Exit
( не переносимо! См. Ниже )Отредактировано 9/2013 для улучшения читабельности
Возврат с определенным кодом выхода: Как указывает Servy в комментариях, вы можете объявить 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()
: завершает этот процесс и дает базовой операционной системе указанный код выхода.