首页 新闻 搜索 专区 学院

引用类型释放内存分配

0
悬赏园豆:5 [已关闭问题] 关闭于 2012-08-24 17:48

请问大家,关于引用类型的内存分配问题,在WinForm开发中,有一个对象如Person,它有几个属性,这几个属性都是DataTable ,每个DataTable 都有接近8000的记录,当我销毁对象时,在前,先调用DataTable.Clear();再Person=null,可是所占的内存跟销毁前一样大,都有40M,为什么销毁对象后,内存没释放呢?

c#
king2003的主页 king2003 | 初学一级 | 园豆:161
提问于:2012-02-03 17:08
< >
分享
所有回答(4)
0

不是DataTable.Clear();Person=null了之后内存会立即释放,这些都是有GC控制的,他觉得需要的时候才会释放。你做的这些操作这只是告诉GC这些东西可以释放!

小小刀 | 园豆:1991 (小虾三级) | 2012-02-03 21:35
0

那就强制调用垃圾回收

慧☆星 | 园豆:5555 (大侠五级) | 2012-02-04 09:59
0

。。。。GC 只是帮你  表面上 ,让你相信 清楚内存上的东西,其实并不是他做的。

还有就是你要理解,堆里的核心:GC堆和Load堆。 GC堆由GC控制,GC堆内 又分 大于8500字节和小于8500字节的 。

而Load堆 这里面的方法表,属性 不是 由GC控制的,而是由 AppDomain控制,退出 AppDomain将清除。

Anleb | 园豆:208 (菜鸟二级) | 2012-02-11 16:30
0
荣耀属于跪拜猫 | 园豆:832 (小虾三级) | 2012-10-07 11:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册