WPF打印问题

Struggle_hardllz 2016-06-23 04:04:42
本身有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);
...全文
210 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小世界大不同 2016-06-24
  • 打赏
  • 举报
回复
不解释,哥已解决。。
  • 打赏
  • 举报
回复
庞大的线程处理各种各样并发性需求 --> 数量庞大的一堆线程处理各种各样并发性需求 每一个线程都至少占用1M系统栈空间,而且占用了宝贵的 CPU 调度资源。你自己 hang 住一个顺序执行程序,用它硬要指挥 windows 去异步地执行什么复杂的跨进程打印操作,而且还要被你的“下一条代码”阻塞住windows,你要求的太高级了,windows做不到啊。
  • 打赏
  • 举报
回复
打印一个页面时应该立刻“结束”去释放控制给 UI 线程。你应该捕获到“打印完成”事件之后,才执行下一个页面打印语句。 编程设计要从事件驱动角度去设计流程,不要一根筋地写这类代码。 一般来说,windows系统下有庞大的线程处理各种各样并发性需求,所以windows系统不让你滥用线程。那么你“打印一个页面”,就应该把控制权交还给windows,然后等下一个事件触发是才去打印下一个页面,这个过程中并不需要子线程编程(在此滥用线程概念是不应该的),而是需要事件驱动编程。

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧