我想从c#应用程序中打印一个html页面,但是在后台线程上,因为如果我在主线程上打印文档,UI会冻结几秒钟,我不希望这样。在后台线程上打印
我已经尝试过WebBrowser控件,但它需要托管在某种形式上才能正常工作。托管此控件仍然可以接受,但Print方法需要从创建控件的同一个线程中调用。我尝试从其他线程调用WebBrowser的Print方法,但它既不工作也不提供任何错误/异常。我也尝试过InternetExplorerClass,但它启动iexplorer.exe并花费太多时间。
有没有其他方法可以在不同的(非UI)线程上打印html页面?
此代码包含添加和删除文档完成事件处理程序之间的争用条件。这就是为什么你需要Thread.Sleep(1000)。 Print方法是不是仍然在主线程上运行,而不是在后台工作器上运行? – Asher 2010-04-12 08:32:34
我第一次遇到一些延迟。从第二次起,它按预期工作。 有什么方法可以减少/消除延迟? – Ram 2010-04-12 09:19:33