如何释放ArrayList所占的内存?

FreeNeo 2004-12-14 06:22:25
正在做一个图形学大作业,用户创建图形(比如球体)时,像3DMax那样用拖拽方式生成图形,因此在MouseMove事件里响应用户操作,改变图形参数,并更新显示!用ArrayList型的变量vertexList存储顶点,在MouseMove事件里需要从新计算图形的顶点,用vertexList.Clear清除所有顶点,再根据计算结果调用vertexList.Add加入顶点。(一个球体大概有500个顶点)造成的结果是绘制一个图形内存10M级别的增长。
请问调用ArrayList的Clear操作,它里面存储的对象会被GC回收吗?我强制调用GC.Collect也没用。
又试过将vertexList=null,调用GC.Collect()好像也没效果,ArrayList也没有dispose方法!
请问改如何释放掉ArrayList里的对象占用的内存?
顺便问一下执行如下的代码
object a=new object();
a=new object();
前面一句给a 分配的内存会被GC回收吗?
...全文
772 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
EATSAHARA 2005-01-20
  • 打赏
  • 举报
回复
对呵,.net framework不提倡手工释放内存
FJGoodGood 2005-01-20
  • 打赏
  • 举报
回复
楼主多虑了,会回收的。
egxsun 2005-01-20
  • 打赏
  • 举报
回复
可以释放掉内存的
fogle 2004-12-15
  • 打赏
  • 举报
回复
vertexList=null;
GC.Collect();
可以释放掉内存的;
timiil 2004-12-14
  • 打赏
  • 举报
回复
vertexList.Clear();
GC.Collect();

应该也是可以的吧
xaodoudou 2004-12-14
  • 打赏
  • 举报
回复
vertexList=null;
GC.Collect();
肯定可以释放掉内存的;

第二问 会
swiminfish_9999 2004-12-14
  • 打赏
  • 举报
回复
一般 ADO.NET 处理链接的方法是把代码写在 using{}里面 出了 { .. } 就自动释放了

110,534

社区成员

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

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

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