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を呼び出します。

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

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

ベストプラクティス

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

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

...
詳しく読む

準備はできましたか?

Nuget Downloads 46,547バージョン:2026.9リリースされたばかり

あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。