Moja aplikacja jest wbudowana w WPF, ale zawiera niektóre komponenty WinForm, które napisaliśmy. Gdy wyjątek jest nieobsługiwany w jednym z komponentów WinForms, powoduje awarię aplikacji.Obsługa nieobsługiwanych wyjątków komponentów WinForm w WPF
Zaimplementowałem DispatcherUnhandledException
dla zdarzeń WPF. Jest to dobre, ponieważ pozwala mi wyświetlić błąd i oznaczyć wyjątek jako obsługiwany, aby uniknąć awarii.
Czy mogę zrobić coś podobnego z wyjątkami niezwiązanymi z WPF. Miałem nadzieję na standardowe okno dialogowe WinForm, które pojawiało się i pozwalało użytkownikowi na kontynuowanie lub całkiem aplikacji?
Edit: WinForms wyjątki daj się złapać w DispatcherUnhandledException
ale ustawienie e.Handled true nie zatrzymać aplikację z upaść.
Czy możesz pokazać kod, w jaki sposób wyświetlasz/używasz formularzy formularzy systemu Windows? –
'DispatcherUnhandledException' powinien wychwycić wszelkie nieobsługiwane wyjątki w wątku interfejsu użytkownika. Czy twoje komponenty WinForms używają innych wątków? Czy też przez pomyłkę uzyskujesz dostęp do nich z innych wątków? – svick
@DavidePiras Są one hostowane w formantu WindowsFormsHost w znacznikach WPF. Na przykład. windowsFormsHost.Child = [przykład kontrolki WinForms] –