c#控件销毁释放内存
1.winform窗体中添加了一个控件PictureBoxpc=newPictureBox();FileStreamfs=newFileStream("Chrysanth...
1.winform窗体中添加了一个控件
PictureBox pc = new PictureBox();
FileStream fs = new FileStream("Chrysanthemum.jpg", FileMode.Open);
pc.Image = Image.FromStream(fs);
this.Controls.Add(pc);
2.移除该控件
flowLayoutPanel1.Controls.Clear();
foreach(Control c in this.Controls)
{
c.Dispose();
}
GC.Collect();
3.控件被移除了,但增长的内存并没有被降下去,别说会自动管理,添加控件后内存增长,清除后内存没有下降 展开
PictureBox pc = new PictureBox();
FileStream fs = new FileStream("Chrysanthemum.jpg", FileMode.Open);
pc.Image = Image.FromStream(fs);
this.Controls.Add(pc);
2.移除该控件
flowLayoutPanel1.Controls.Clear();
foreach(Control c in this.Controls)
{
c.Dispose();
}
GC.Collect();
3.控件被移除了,但增长的内存并没有被降下去,别说会自动管理,添加控件后内存增长,清除后内存没有下降 展开
推荐于2017-11-27
展开全部
Dispose();或者设置为null都是可以释放内存的,虽然你立即调用了GC,但是系统去回收还是需要一点时间的,GC只是告诉系统,我这里有不用的垃圾了,快来回收啊。(还有你读取图片的那个流,使用完毕以后记得close哦)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询