Office中国论坛/Access中国论坛

标题: Set 对象=nothing 真的释放对象内存吗 [打印本页]

作者: tmtony    时间: 2015-6-8 09:41
标题: Set 对象=nothing 真的释放对象内存吗
我们经常会误以为Set 对象=nothing 就是释放对象所占用的内存,甚至很多Access和VBA的书也是这样写的。
实际上 Set XXX = Nothing ' 这并不是释放那个对象, 它只是断开这个变量与对象本身的引用, 当那个对象的引用计数变成 0, 它才会会被释放掉.
从VB的角度讲,就是去除变量对对象的引用,当引用计数为0时就释放内存.
从COM的角度讲,就是AddRef和Release接口函数的调用.
虽然是一个简单的常识,但理解了,编程的思路才会清晰。

作者: zhuyiwen    时间: 2015-6-8 09:49
精辟!
作者: 风中漫步    时间: 2015-6-8 13:54
谢谢分享.
我看到的资料就是解释为释放内存,呵呵

前几天看到todaynew斑竹的越俎代庖 --- 递归函数示例(http://www.office-cn.net/thread-120006-1-1.html)想起我也曾写过类似代码实现类似功能,一直怀疑会不会出现内存泄露的情况.老别不过弯来,大师们能否给讲讲实现过程

作者: 风中漫步    时间: 2015-6-9 14:22
风中漫步 发表于 2015-6-8 13:54
谢谢分享.
我看到的资料就是解释为释放内存,呵呵

刚做了个测试,todaynew斑竹的例应该不会泄露.特此说明
作者: lintina892    时间: 2015-6-27 21:13
谢谢分享!!!!!
作者: lintina892    时间: 2015-8-5 15:55
思想非常不?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3