Как немедленно выйти из приложения Windows Forms .NET? - PullRequest
3 голосов
/ 22 февраля 2010

В нашем приложении у нас есть довольно обширный механизм обработки исключений. В какой-то момент в нашей логике обработки ошибок мы хотим завершить приложение - прямо в этот момент без дальнейшего выполнения кода.

Наш текущий код использует Environment.Exit () для этого. После вызова Environment.Exit () некоторый код все еще выполняется. Например, GC может выполнить финализатор некоторых объектов (и это вызывает проблему в нашем случае). Мы не хотим, чтобы это случилось. Есть ли способ действительно убить наш собственный процесс (возможно, вызов API Win32 )?

Конечно, мы не хотим, чтобы конечный пользователь видел диалоговое окно Windows, которое появляется при сбое программы ...

Ответы [ 3 ]

5 голосов
/ 22 февраля 2010

Используйте метод Environment.FailFast:

Завершает процесс, но не выполняет никаких активных блоков try или finally.

3 голосов
/ 22 февраля 2010

Попробуйте Environment.FailFast

1 голос
/ 23 февраля 2010

Кажется, это работает в простом приложении, но я не пробовал его с чем-то сложным:

System.Diagnostics.Process.GetCurrentProcess().Kill();

GetCurrentProcess

Получает новый Процесс компонент и связывает это с в настоящее время активный процесс.

Kill

Убить вызывает прекращение действия процесс, пока CloseMainWindow только запрашивает прекращение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...