私のアプリケーションはWPFで構築されていますが、私たちが作成したWinFormsコンポーネントがいくつか含まれています。 WinFormsコンポーネントの1つで例外が処理されないと、アプリケーションがクラッシュします。WPFのWinformsコンポーネントから未処理の例外を処理する
WPFイベント用にDispatcherUnhandledException
を実装しました。これは、クラッシュを避けるためにエラーを表示し、例外をHandledとマークすることができるため、良いことです。
WPF以外の例外と同様のことを行うことはできますか。私は、ユーザーがアプリケーションを続けるか、かなりのアプリケーションを使用できるようにしていた標準のWinFormsダイアログを期待していましたか?
:WinFormsの例外はDispatcherUnhandledException
にキャッチされますが、e.Handledをtrueに設定してもアプリケーションがクラッシュすることはありません。
Windowsフォームフォームの表示/使用方法に関するいくつかのコードを表示できますか? –
'DispatcherUnhandledException'は、UIスレッドで未処理の例外を捕捉する必要があります。あなたのWinFormsコンポーネントは他のスレッドを使用していますか?他のスレッドから間違ってアクセスしていますか? – svick
@DavidePiras WPFマークアップのWindowsFormsHostコントロールでホストされています。例えば。 windowsFormsHost.Child = [WinFormsコントロールのインスタンス] –