У меня есть приложение WPF, в которое я добавляю некоторый верхний уровень, поймаю всю обработку ошибок. Я обрабатывать событие DispatcherUnhandledException так:Попытка показать диалог в DispatcherUnhandledException
private void App_OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
if (_isHandlingError)
{
_log.Error("Critical unhandled error", e.Exception);
e.Handled = true;
return;
}
_isHandlingError = true;
var vm = _windsorContainer.Resolve<ErrorReporterViewModel>();
Dispatcher.Invoke(() =>
{
vm.Details = FailureMessageBuilder.CreateContent(e.Exception);
var view = new ErrorReporterView { DataContext = vm };
view.Show();
});
e.Handled = true;
NotifyOfException(e.Exception, vm.Description);
_isHandlingError = false;
}
Проблема в том, что вызов Показать() (или ShowDialog) никогда не возвращается, а диалоговое окно ошибки никогда не отображается.
В чем может быть проблема?
Вы отлажена его? –
Наверное, нет..Многие люди, которых я замечаю, не знают, как даже использовать отладчик .., что такое пародия ... – MethodMan
Просто, чтобы уточнить - событие срабатывает, и вызывается обработчик. Но вызов Show никогда не возвращается. – Avram