Print() Method Hangs in WPF and WinForms
When you call the synchronous Print() method in a WPF or WinForms application, the method is invoked but never completes. The call hangs indefinitely, blocking the thread and freezing the UI even when the print job itself is valid.
IronPrint.Printer.Print("Test print"); // Hangs here
IronPrint.Printer.Print("Test print"); // Hangs here
IronPrint.Printer.Print("Test print") ' Hangs here
This is expected behavior. Print() is intentionally synchronous and blocks the calling thread until the print job completes, so calling it from a WPF or WinForms UI thread freezes the UI.
Solution
Call the asynchronous API instead of the synchronous one.
await IronPrint.Printer.PrintAsync("Test print");
await IronPrint.Printer.PrintAsync("Test print");
PrintAsync() moves the print operation off the blocking path, so the job completes and the UI stays responsive in both WPF and WinForms.
Best Practices
- Prefer async APIs: reach for
PrintAsync()in WPF and WinForms to avoid UI thread deadlocks. - Never block on the main thread: avoid
.Resultand.Wait()against an async call. - Offload long-running I/O: keep printing and other external work on background or async tasks.

