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 Dispatcher 和執行緒上下文與 IronPrint 的列印管道衝突,阻止了呼叫。

解決方案

調用非同步 API 而不是同步 API。

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

PrintAsync() 將列印操作移出阻塞路徑,因此作業完成,UI 在 WPF 和 WinForms 中保持響應。

最佳實踐

  • 更新 IronPrint: 下載最新版本以獲取可用的修正。
  • 偏好非同步 API: 在 WPF 和 WinForms 中使用 PrintAsync() 以避免 UI 執行緒死鎖。
  • 切勿在主執行緒上阻塞: 避免對非同步呼叫使用 .Result.Wait()
  • 解除安裝長時間執行的 I/O 操作: 將列印和其他外部工作保持在背景或非同步任務中。
Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備好開始了嗎?

Nuget Downloads 46,090版本:2026.9剛剛發布

立即獲取您的免費30天試用金鑰
不需要信用卡或帳戶建立
C# NuGet PDF程式庫
安裝方法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這樣的位置在您的Solution目錄下
  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天試用金鑰
無需信用卡或帳戶建立