.net中通过activex组件动态导致的非托管内存泄漏

本文关键字:泄漏 内存 activex 动态 组件 net | 更新日期: 2023-09-27 18:04:16

我正在使用一个ActiveX组件,该组件最初只是为。net之前编写的,会导致内存泄漏。所有。net相关的实例(AxHost等)都被正确释放,但非托管内存仍在增长。(根据。net内存分析器)

有没有办法从。net中强制释放非托管内存?也许这可以用一种处理难以控制的ActiveX组件的方法来解决?

组件是Dynavix 2 (dyDisplay, PictureDocument, AxDYNAview)

.net中通过activex组件动态导致的非托管内存泄漏

不幸的是,. net运行时不负责非托管内存。

你可以做的是创建一个程序,并使用IPC Remoting在两者之间进行通信。当你不再需要控制的时候,你可以杀死第二个程序(或者当它的内存使用增长太多的时候杀死它)。

你甚至可以在你的控件中托管你的次要应用程序的窗口-使用与windows屏幕保护程序在预览模式下相同的技巧