Winforms 由于PDF查看器,表单关闭缓慢

Winforms 由于PDF查看器,表单关闭缓慢,winforms,pdf-viewer,axacropdf,Winforms,Pdf Viewer,Axacropdf,我们有一个Winforms应用程序,它使用PDFViewer和AxAcroPDFlib。我们以前遇到过一个问题,表单在关闭时会挂起,因为pdf控件在关闭时遇到问题。找到的解决方案是在表单关闭事件期间将焦点分配给不同的控件。自实施以来,这项工作没有出现任何问题 上周Adobe Reader DC更新了,问题似乎又出现了。再次关闭表单时出现延迟。关闭表单时,任务栏上会出现Adobe Acrobat图标约10秒钟,然后消失,表单关闭。这是以前发生的事情 现在有人知道如何纠正这个问题吗 我想用另一个不依

我们有一个Winforms应用程序,它使用PDFViewer和AxAcroPDFlib。我们以前遇到过一个问题,表单在关闭时会挂起,因为pdf控件在关闭时遇到问题。找到的解决方案是在表单关闭事件期间将焦点分配给不同的控件。自实施以来,这项工作没有出现任何问题

上周Adobe Reader DC更新了,问题似乎又出现了。再次关闭表单时出现延迟。关闭表单时,任务栏上会出现Adobe Acrobat图标约10秒钟,然后消失,表单关闭。这是以前发生的事情

现在有人知道如何纠正这个问题吗


我想用另一个不依赖用户安装Acrobat的控件替换此控件,但在我有时间这样做之前,我需要一个修复/解决方法。

我遇到了同样的问题

关闭时从窗体的控件集合中删除AxAcroPDF控件有效 对我来说


A

在尝试解决这个问题的最后8个小时中找到的许多解决方案之后,我终于找到了解决方案

在FormClosing事件期间,添加以下内容

  • 使用loadFile例程加载不存在的PDF
  • 将焦点更改为其他对象
  • 让其他事件发生吧
  • 睡50分钟
请参见下面我的C代码。如果删除这些行中的任何一行,挂起窗体关闭将重新出现

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秒的延迟。