此问题影响我的 VB.NET 和 C#Winform
应用程序。关闭Form
含Adobe PDF Viewer
conreol时,Form
需要10秒左右才能关闭。我将问题追溯到Dispose
方法。通常,在 C# 中,它需要Adobe PDF Control
通过向事件处理程序添加行来FormClosing
窃取焦点,但在 VB.NET 中,即使我窃取焦点,Form
关闭它仍然需要太长时间。我试图通过处理包含的Form
. LoadFile()
我在方法中尝试了空字符串。我尝试了对新互操作库的新引用。没有任何效果。此外,如果您建议使用不同的 API/库来替换AxAcroPDFlib
,我很乐意阅读您使用的内容。
问问题
815 次
1 回答
1
我现在有一个解决方案。早期测试很有希望。简而言之,添加Controls.Remove(yourPdfViewerControl)
到FormClosing
事件处理程序。当然,这会立即缓解问题,但可能会导致内存泄漏。删除控件后,Container
您可以分配null
其内存地址并希望内存管理器能够完成其工作。
所以为了防止泄漏,我创建了一个类来PdfViewer
控制一个内存空间。如果 aForm
需要查看器,它会从可以从任何形式访问的对象中请求它,以防止内存泄漏。为避免Dispose
在关闭时调用方法Form
,请确保将其Control
从Controls
容器中删除。如果需要,我可以提供示例代码。
于 2017-01-18T22:36:27.867 回答