Winforms 由于PDF查看器,表单关闭缓慢
我们有一个Winforms应用程序,它使用PDFViewer和AxAcroPDFlib。我们以前遇到过一个问题,表单在关闭时会挂起,因为pdf控件在关闭时遇到问题。找到的解决方案是在表单关闭事件期间将焦点分配给不同的控件。自实施以来,这项工作没有出现任何问题 上周Adobe Reader DC更新了,问题似乎又出现了。再次关闭表单时出现延迟。关闭表单时,任务栏上会出现Adobe Acrobat图标约10秒钟,然后消失,表单关闭。这是以前发生的事情 现在有人知道如何纠正这个问题吗Winforms 由于PDF查看器,表单关闭缓慢,winforms,pdf-viewer,axacropdf,Winforms,Pdf Viewer,Axacropdf,我们有一个Winforms应用程序,它使用PDFViewer和AxAcroPDFlib。我们以前遇到过一个问题,表单在关闭时会挂起,因为pdf控件在关闭时遇到问题。找到的解决方案是在表单关闭事件期间将焦点分配给不同的控件。自实施以来,这项工作没有出现任何问题 上周Adobe Reader DC更新了,问题似乎又出现了。再次关闭表单时出现延迟。关闭表单时,任务栏上会出现Adobe Acrobat图标约10秒钟,然后消失,表单关闭。这是以前发生的事情 现在有人知道如何纠正这个问题吗 我想用另一个不依
我想用另一个不依赖用户安装Acrobat的控件替换此控件,但在我有时间这样做之前,我需要一个修复/解决方法。我遇到了同样的问题 关闭时从窗体的控件集合中删除AxAcroPDF控件有效 对我来说
A在尝试解决这个问题的最后8个小时中找到的许多解决方案之后,我终于找到了解决方案 在FormClosing事件期间,添加以下内容
- 使用loadFile例程加载不存在的PDF
- 将焦点更改为其他对象
- 让其他事件发生吧
- 睡50分钟
if (this.axPDF != null)
{
axPDF.LoadFile("someFileThatDoesntExist.PDF");
cmdNext.Focus();
System.Windows.Forms.Application.DoEvents();
System.Threading.Thread.Sleep(50);
axPDF.Dispose();
}
今天早上我的申请没有延误。我检查了程序和功能,发现Acrobat Reader已更新为15.023.20070版。看起来Adobe已经修复了这个bug。我再也看不到延误了
如果您一直存在此问题,请检查更新是否为您解决了此问题。在过去的几周里,我看到了一些其他人说为他们工作的变通方法,但这些方法对我不起作用,因此我的问题可能与其他人的问题不同,因此此更新可能无法解决每个人的问题。不过它似乎已经修复了我的问题。如果您决定离开AcroPDFLib,ImageMagick库是一个免费选项,它使用Ghostscript引擎处理PDF。ImageMagick有一个.NET包装器可与C#一起使用。另一个选择是,它有一个免费的评估版。注意:我是LEADTOOLS供应商的员工。别忘了将该控件设置为
null
,否则可能会导致内存泄漏。在VB.NET中,它对我不起作用。如果我单步执行代码,则在Dispose处会有大约10秒的延迟。