Почему исключения AppDomain неизменно завершают работу приложения?
Это связано спредыдущий вопрос.
Сейчас я пытаюсь понять, почему исключение потока пользовательского интерфейса может быть предотвращено от завершения приложения, в то время как исключения не-пользовательского интерфейса не могут быть.
Для справки см.этот пример.
Самое главное, что я хотел бы иметь в этом случае, это «тихо» завершить процесс - без отображения диалогового окна Windows, которое спрашивает, хочу ли я отправить отчет об ошибке или нет.
Это мой AppDomain UnhandledExceptionHandler:
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
try
{
// Maybe do some logging here if allowed
}
catch
{
}
// then just terminate the application
Application.Exit();
}
ОБНОВИТЬ
В свете комментариев вэтот ответЯ хотел бы уточнить, что наиболее важно, я хотел бы узнать больше о механизме, который позволяет потоку пользовательского интерфейса иметь раннюю возможность ловить необработанные исключения черезApplication.ThreadException
механизм. И может ли такое поведение быть реализовано в потоке без пользовательского интерфейса.