【发布时间】:2012-05-01 10:06:00
【问题描述】:
是否可以在 Silverlight 中打印而不阻塞 UI 线程?
我必须打印很多页面,因此我的 UI 会冻结一段时间。我想在后台线程上打印(并尽可能更新进度条),但不知道如何。
我尝试在BackgroundWorker 的DoWork() 方法中调用我的PrintDocument 的Print() 方法,但这给了我一个UnauthorizedAccessException "Invalid cross-thread access"。
似乎即使在 UI 线程之外启动 PrintDocument 也是不可能的:
BackgroundWorker.DoWork() 中的 PrintDocument pd = new PrintDocument(); 抛出相同的异常。
我发现很多帖子都说打印必须在 UI 线程上进行,但没有相关文档。我是多线程的新手,所以任何正确方向的指针都将不胜感激。
【问题讨论】:
标签: multithreading silverlight printing backgroundworker ui-thread