在我的一个 VB6 表单中,我创建了几个其他 Form 对象并将它们存储在成员变量中。
Private m_frm1 as MyForm
Private m_frm2 as MyForm
// Later...
Set m_frm1 = New MyForm
Set m_frm2 = New MyForm
我注意到,每当创建和销毁此(父)表单时,我都会泄漏内存。我是否有必要将这些成员变量分配给Nothing
in Form_Unload()
?
一般来说,什么时候需要这样做?
已解决:当我执行以下操作时,此特定内存泄漏已修复Unload
在有问题的表格上,而不是当我将表格设置为Nothing
。我通过将类模块的一些实例显式设置为来消除其他一些内存泄漏Nothing
,还有。
实际上VB6实现了RAII http://en.wikipedia.org/wiki/RAII就像 C++ 一样,意味着本地声明的引用会自动设置为Nothing
在一个块的末尾。同样,它should执行后自动重置成员类变量Class_Terminate
。然而,有几份报告表明这并不可靠。我不记得任何严格的测试,但手动重置成员变量始终是最佳实践。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)