本身有4个页面要打印,本人用XPS打印机打印出来有四个,但是用打印机打印出来只打印出一个页面是什么原因,求帮助!
这是打印代码
这是打印代码
gdd.Children.Add(vb1); dialog.PrintVisual(VB, "print Test"); gdd.Children.Remove(vb1); gdd.Children.Add(vb2); dialog.PrintVisual(VB, "print Test"); gdd.Children.Remove(vb2); gdd.Children.Add(vb3); dialog.PrintVisual(VB, "print Test"); gdd.Children.Remove(vb3); gdd.Children.Add(vb4); dialog.PrintVisual(VB, "print Test"); gdd.Children.Remove(vb4);
解决方案
1
打印一个页面时应该立刻“结束”去释放控制给 UI 线程。你应该捕获到“打印完成”事件之后,才执行下一个页面打印语句。
编程设计要从事件驱动角度去设计流程,不要一根筋地写这类代码。
一般来说,windows系统下有庞大的线程处理各种各样并发性需求,所以windows系统不让你滥用线程。那么你“打印一个页面”,就应该把控制权交还给windows,然后等下一个事件触发是才去打印下一个页面,这个过程中并不需要子线程编程(在此滥用线程概念是不应该的),而是需要事件驱动编程。
编程设计要从事件驱动角度去设计流程,不要一根筋地写这类代码。
一般来说,windows系统下有庞大的线程处理各种各样并发性需求,所以windows系统不让你滥用线程。那么你“打印一个页面”,就应该把控制权交还给windows,然后等下一个事件触发是才去打印下一个页面,这个过程中并不需要子线程编程(在此滥用线程概念是不应该的),而是需要事件驱动编程。
39
不解释,哥已解决。