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

これは想定される動作です。 同期Print()はアプリケーションのUIスレッドで実行され、そこでWPFのディスパッチャーとスレッドコンテキストがIronPrintの印刷パイプラインと衝突し、呼び出しをブロックします。

解決策

同期メソッドの代わりに非同期APIを呼び出します。

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

PrintAsync()は印刷操作をブロックパスから移し、ジョブが完了し、WPFとWinFormsの両方でUIが応答し続けるようにします。

ベストプラクティス

  • IronPrintを更新する: 利用可能な修正を取り入れるため最新バージョンを実行します。
  • 非同期APIを推奨: WPFやWinFormsでUIスレッドのデッドロックを避けるためにPrintAsync()を利用してください。
  • メインスレッドをブロックしない: 非同期呼び出しに対して.Wait()を避けてください。
  • 長時間実行されるI/Oを外部に委譲する: 印刷やその他の外部の作業をバックグラウンドまたは非同期タスクに保ちます。

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

詳しく読む

準備はできましたか?

Nuget Downloads 49,171バージョン:2026.11リリースされたばかり