2011-11-13 56 views
8

我的应用程序是在WPF中构建的,但它包含了我们编写的一些WinForms组件。当某个WinForms组件中的某个异常未处理时,它会使应用程序崩溃。处理WPF中Winforms组件的未处理异常

我为WPF事件实施了DispatcherUnhandledException。这很好,因为它允许我显示错误并将异常标记为Handled以避免崩溃。

我可以对非WPF异常做类似的事情吗?我希望标准的WinForms对话框出现并允许用户继续使用或完全使用应用程序?

编辑:WinForms异常会在DispatcherUnhandledException中被捕获,但将e.Handled设置为true不会停止应用程序崩溃。

+1

你能展示一些关于如何显示/使用Windows窗体表单的代码吗? –

+0

DispatcherUnhandledException应该捕获UI线程中的任何未处理的异常。你的WinForms组件是否使用其他线程?还是你错误地从其他线程访问它们? – svick

+0

@DavidePiras它们位于WPF标记的WindowsFormsHost控件中。例如。 windowsFormsHost.Child = [WinForms控件实例] –

回答