2013-10-11 2 views
3

Когда AppDomain имеет необработанное исключение, вы можете обработать событие AppDomain.CurrentDomain.UnhandledException.WPF AppDomain UnhandledException обработчик таймаут

Однако вы не можете предотвратить остановку AppDomain. Вы не можете просто заблокировать поток. В конце концов AppDomain отключит его.

В ASP.NET, если у вас есть объекты, зарегистрированные (IRegisteredObject), AppDomain предоставит ваш код 30 секунд для запуска.

Кто-нибудь знает, что такое тайм-аут для стандартного приложения WPF?

+0

Я запускаю эксперимент, и похоже, что нет таймаута! Могу ли я запустить бесконечный цикл здесь? – Haacked

+0

Приложение WPF использует другой хост CLR, его тайм-аут для разгрузки действительно INFINITE. –

ответ

0

Я не знаю, как установить тайм-аут для DispatcherUnhandledException обработчика

Но это приложение прекращения с Environment.Exit или Application.Exit где есть необработанное исключение?

Цитирование: http://www.dev102.com/2008/06/24/how-do-you-exit-your-net-application/

Environment.Exit - Из MSDN: Завершает этот процесс и дает основной операционной системы указанный код выхода. Это код для вызова, когда вы используете консольное приложение.

Application.Exit - Из MSDN: Информирует все сообщения насосов, что они должны прекратить, и закрывает все окна приложения после сообщения были обработаны. Это код для использования, если вы вызываете Application.Run (приложения WinForms), этот метод останавливает все запущенные петли сообщений на всех потоках и закрывает все окна приложения . Есть еще несколько вопросов об этом методе, прочитайте о нем на странице MSDN.

Для WPF, если необработанное исключение приведет к краху приложения с Environment.Exit (как это предполагалось Application.Exit) - я подозреваю, что приложение не завершать работу, пока все потоки не выполняются. Если да, то вы можете попробовать сделать то, что вам нужно сделать через поток в обработчике DispatcherUnhandledException.

Можете ли вы сообщить мне, если это поведение? Мне интересно. У нас никогда не было проблем с этим, так как в обработчике WPF DispatcherUnhandledException мы просто выполняем простое ведение журнала на диске

Смежные вопросы