处理

时间:2017-01-17 22:50:24

标签: vb.net winforms axacropdf

此问题会影响我的VB.NET和C#Winform应用程序。关闭包含Form conreol的Adobe PDF Viewer时,Form需要大约10秒才能关闭。我将问题跟踪到Dispose方法。通常情况下,在C#中,所有通过向Adobe PDF Control事件处理程序添加行来从FormClosing偷取焦点,但在VB.NET中,即使我窃取焦点,它仍然需要花费太长时间Form 1}}关闭。我试图通过处理包含Form来明确地处理控件和隐式。我在LoadFile()方法中尝试了空字符串。我尝试了新的interop库的新参考。什么都行不通。  此外,如果您建议使用其他API /库来替换AxAcroPDFlib,我很乐意阅读您使用的内容。

1 个答案:

答案 0 :(得分:1)

我现在有了解决方案。早期测试很有希望。 简而言之,将Controls.Remove(yourPdfViewerControl)添加到FormClosing事件处理程序。当然,这将提供问题的即时缓解,但可能导致内存泄漏。从Container删除控件后,您可以将null置于其内存地址,并希望内存管理器完成其工作。

因此,为了防止泄漏,我创建了一个为PdfViewer控制保留一个存储空间的类。如果Form需要查看器,它会从可从任何表单访问的对象请求它,以防止内存泄漏。要在Dispose关闭时避免Form方法调用,请务必从Control容器中删除此Controls。 如果需要,我可以提供示例代码。