之前开发了一个基于Revit2017的批量化打印图纸插件,单独打印运行的没有问题,
但是批量打印的时候各种不稳定,基本一出问题之后直接造成软件崩溃,
后来上官网发了一篇求助帖子:传送门
得到高人指点,终于懂了原来是这么回事:
每次打印之前先将打印的视图设置为活动视图即可,同时我还发现打印的事务设置为commit,用rollback也会极不稳定。
但是这样操作仍然存在一个很奇怪的,有概率的会发生这种情况:
打印时候,虚拟打印机(Adobe)直接打印了第一张然后紧接着打印了第二张(即使在代码中把在两次打印之间做了线程挂起了也会发生这种情况),
然后系统直接抛出错误,以前我是在事务中循环视图进行打印,只要出错就崩溃,
后面将循环拿到外面,每次打印事务之前先设置当前循环的视图为活动视图,这样每次打印即使出现上述那种问题,报错,但是能被异常捕获,不会致使软件崩溃。
但是这种情况就有概率的第一次发生,再进行批量打印又不会报错了,这个问题真的很困扰。
看看以后有没有好办法解决。
来源:https://www.cnblogs.com/LeeSki/p/12198295.html