1

此问题影响我的 VB.NET 和 C#Winform应用程序。关闭FormAdobe PDF Viewerconreol时,Form需要10秒左右才能关闭。我将问题追溯到Dispose方法。通常,在 C# 中,它需要Adobe PDF Control通过向事件处理程序添加行来FormClosing窃取焦点,但在 VB.NET 中,即使我窃取焦点,Form关闭它仍然需要太长时间。我试图通过处理包含的Form. LoadFile()我在方法中尝试了空字符串。我尝试了对新互操作库的新引用。没有任何效果。此外,如果您建议使用不同的 API/库来替换AxAcroPDFlib,我很乐意阅读您使用的内容。

4

1 回答 1

1

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

所以为了防止泄漏,我创建了一个类来PdfViewer控制一个内存空间。如果 aForm需要查看器,它会从可以从任何形式访问的对象中请求它,以防止内存泄漏。为避免Dispose在关闭时调用方法Form,请确保将其ControlControls容器中删除。如果需要,我可以提供示例代码。

于 2017-01-18T22:36:27.867 回答