我有VB.NET应用程序,其中一个表单中有IE控件,应用程序最初启动时内存大小消耗大约9 MB,但是当IE表单启动时,消耗的内存增加到27 MB,当该表单已关闭,内存仅减少3-4 MB,那么为什么分配给IEFrame的内存不会自动解除分配?有什么工作可以解决这个问题吗?如果可能的话,将表单作为单独的过程启动会很有帮助。
答案 0 :(得分:2)
如果确保正确处理表单,垃圾收集器最终应释放该内存。不必在单独的进程中运行IE控件。 但是,如果您使用的是IE 7,则可能需要阅读有关内存泄漏的this question。
答案 1 :(得分:1)
为什么不把这个表单放在一个单独的应用程序中,如果这是一个问题?有很多方法可以在两个应用程序之间传递任何数据。
答案 2 :(得分:0)
仍然分配的内存可能根本不是问题。如果计算机中有足够的可用内存,则.NET垃圾收集器将无法运行以进行清理。只有当您需要内存时,GC才会启动。
如果您想确保它是泄漏,您可以执行以下操作:
不要将GC.Collect()放在最终版本中;这只是为了确保你不是在追捕幽灵。