更新:2007 年 11 月
本示例演示如何管理在辅助工作线程上引发的未处理异常。
此示例演示 Windows Presentation Foundation 的特定功能,因此未遵循应用程序开发的最佳做法。有关 Windows Presentation Foundation (WPF) 和 Microsoft .NET Framework 应用程序开发的最佳做法的全面介绍,请相应地参考以下主题:
辅助功能 - 辅助功能最佳方案
本地化 - WPF 全球化和本地化概述
性能 - 优化 WPF 应用程序性能
安全 - Windows Presentation Foundation 安全性
生成示例
安装 Windows 软件开发工具包 (SDK) 并打开其生成环境命令窗口。在“开始”菜单上,指向“所有程序”、“Microsoft Windows SDK”,然后单击“CMD Shell”。
将示例(通常位于软件开发工具包 (SDK) 文档中)下载到您的硬盘。
若要从生成环境命令窗口生成示例,请转到示例的源目录。在命令提示符处,键入 MSBUILD。
若要在 Microsoft Visual Studio 中生成示例,请加载示例解决方案或项目文件,然后按 Ctrl+Shift+B。
运行示例
若要从生成环境命令窗口运行已编译的示例,请执行示例源代码文件夹下包含的 Bin\Debug 或 Bin\Release 文件夹中的 .exe 文件。
若要在 Visual Studio 中调试运行已编译的示例,请按 F5。
备注
独立的或由浏览器承载的 WPF 应用程序使用 Application 类检测未处理异常(请参见 DispatcherUnhandledException)。但是,Application 只能检测在正在运行 Application 类的同一线程上引发的未处理异常。通常,应用程序具有一个主用户界面 (UI) 线程,因此 Application 类的未处理异常检测行为能够满足需要。但是,主 UI 线程上的 Application 类不会自动检测到在辅助线程上引发的未处理异常。
本示例演示如何将未处理异常从辅助工作线程传递回主 UI 线程,从而使 Application 对象可以检测到这些异常。通过检测辅助工作线程上的未处理异常并使用 Dispatcher 将这些异常转发给主 UI 线程,可以实现此目的。在主 UI 线程上将重新引发这些异常,以便 Application 对象可以检测到它们。
![]() |
---|
辅助工作线程是不显示 UI 的辅助线程。 |