IRONSOFTWAREHOME

Print()方法在WPF和WinForms中挂起

Curtis Chau
Curtis Chau
Updated: 2026年6月29日

在WPF或WinForms应用程序中调用同步Print()方法时,该方法被调用但从未完成。 调用无限期挂起,阻塞线程并冻结UI,即使打印任务本身有效。

var printer = new IronPrint.Printer();
printer.Print("Test print"); // Hangs here
C#

这是预期行为。 同步Print()在应用程序的UI线程上运行,其中WPF调度程序和线程上下文与IronPrint的打印管道发生冲突并阻塞调用。

解决方案

调用异步API而不是同步API。

var printer = new IronPrint.Printer();
await printer.PrintAsync("Test print");
C#

PrintAsync()将打印操作移出阻塞路径,因此任务完成,UI在WPF和WinForms中保持响应。

最佳实践

  • 更新IronPrint: 运行最新版本以在可用时获取修复。
  • **首选异步API:**在WPF和WinForms中使用PrintAsync()以避免UI线程死锁。
  • **绝不要阻塞主线程:**避免对异步调用进行.Wait()
  • **卸载长时间运行的I/O:**将打印和其他外部工作保持在后台或异步任务中。
Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

Nuget Downloads 46,090版本:2026.9刚刚发布

立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPrint
nuget.org/packages/IronPrint/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择“浏览”并搜索“IronPrint”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

  1. 下载并解压 IronPrint 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键单击引用。选择“浏览”,“IronPrint.dll”

$999 起售

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户