首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

.Net内存释放有关问题

2012-05-09 
.Net内存释放问题我有个问题:比如说我的对象A A的一个属性是Byte[]数组。现在有一个ListA list 。我list.c

.Net内存释放问题
我有个问题:
比如说我的对象A A的一个属性是Byte[]数组。现在有一个List<A> list 。我list.clear()完了之后list里边的每个A对象的Byte[]数组属性占用的内存是否释放掉了!请各位大侠指点一下小的!

[解决办法]
使用clear()方法后只是清除了List的元素

Dispose(),用来释放非托管资源。

调用 Dispose() 后,不应该再访问这个对象,尽管你可以这么做。

Dispose() 没有清除表里面数据的功能

另外,调用完dispose()后,对象状态已经无法确定。。由GC来决定什么时候杀死他。
千万不要再访问它。否则程序随时都会崩溃。
[解决办法]
只要你是托管数据,就交给GC吧,不必考虑这些问题。
[解决办法]

探讨
使用clear()方法后只是清除了List的元素

Dispose(),用来释放非托管资源。

调用 Dispose() 后,不应该再访问这个对象,尽管你可以这么做。

Dispose() 没有清除表里面数据的功能

另外,调用完dispose()后,对象状态已经无法确定。。由GC来决定什么时候杀死他。
千万不要再访问它。否则程序随时都会崩溃。

[解决办法]
一般由GC自动回收。
[解决办法]
GC会自动回收,一般情况下你不用考虑这个。
[解决办法]
你在其他地方如果有对byte[] 的引用的话 一般不会 如果没有 GC定时会清理的 当然 你不需要知道这些
[解决办法]
除非占用系统资源(例如IO资源,数据库连接等)的地方需要手动释放,其他的都应该交由GC来处理。
[解决办法]
探讨
我有个问题:
比如说我的对象A A的一个属性是Byte[]数组。现在有一个List<A> list 。我list.clear()完了之后list里边的每个A对象的Byte[]数组属性占用的内存是否释放掉了!请各位大侠指点一下小的!

热点排行