.Net内存释放问题

boss_kg 2012-05-08 02:57:40
我有个问题:
比如说我的对象A A的一个属性是Byte[]数组。现在有一个List<A> list 。我list.clear()完了之后list里边的每个A对象的Byte[]数组属性占用的内存是否释放掉了!请各位大侠指点一下小的!
...全文
181 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
boss_kg 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

引用 3 楼 的回复:
引用 1 楼 的回复:
使用clear()方法后只是清除了List的元素

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

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

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

另外,调用完dispose()后,对象状态已经无法确定。。由GC来决定什么时候杀死他。
千万不要再访问它。否……
[/Quote]
没分给了,小弟就35分了,等发达了给各位大侠!
saijie 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用 1 楼 的回复:
使用clear()方法后只是清除了List的元素

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

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

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

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

同……
[/Quote]
还同上
boss_kg 2012-05-08
  • 打赏
  • 举报
回复
谢谢了!
指间的风 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
我有个问题:
比如说我的对象A A的一个属性是Byte[]数组。现在有一个List<A> list 。我list.clear()完了之后list里边的每个A对象的Byte[]数组属性占用的内存是否释放掉了!请各位大侠指点一下小的!
[/Quote]


你要确保没有对象指向 list所指向的内存地址,
及 newlist = list;
这样交给GC 即可。
花痴 2012-05-08
  • 打赏
  • 举报
回复
除非占用系统资源(例如IO资源,数据库连接等)的地方需要手动释放,其他的都应该交由GC来处理。
请叫我卷福 2012-05-08
  • 打赏
  • 举报
回复
你在其他地方如果有对byte[] 的引用的话 一般不会 如果没有 GC定时会清理的 当然 你不需要知道这些
dalmeeme 2012-05-08
  • 打赏
  • 举报
回复
GC会自动回收,一般情况下你不用考虑这个。
mizuho_2006 2012-05-08
  • 打赏
  • 举报
回复
一般由GC自动回收。
NewUser2008 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
使用clear()方法后只是清除了List的元素

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

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

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

另外,调用完dispose()后,对象状态已经无法确定。。由GC来决定什么时候杀死他。
千万不要再访问它。否则程序随时都会崩溃。
[/Quote]
同上
cheng2005 2012-05-08
  • 打赏
  • 举报
回复
只要你是托管数据,就交给GC吧,不必考虑这些问题。
  • 打赏
  • 举报
回复
使用clear()方法后只是清除了List的元素

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

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

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

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

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧