Нет никакого хорошего пути. Единственные реальные опции, которые я вижу:
Наиболее очевидное отличие состоит в том, что вы можете вызвать Environment. Выйдите из любого места вашего кода. Помимо этого:
Environment.Exit
все равно остановит процесс. Environment.Exit
завершает процесс без раскрутки стека и выполнения блоков finally (по крайней мере, согласно моим экспериментам) . Очевидно, что когда вы возвращаетесь из Main
, вы уже находитесь на верхнем уровне в том, что касается управляемого кода. Environment.Exit
требует соответствующего разрешения безопасности, поэтому не будет работать для менее надежных приложений. Я не совсем понимаю, что вы имеете в виду, увидев обновление вопроса.
Environment.Exit (2)
можно использовать везде. возвращает 2
только в рамках функции Main ()
.