更改表单Backgroundimage占用太多内存

时间:2012-05-17 20:28:21

标签: c# .net winforms memory

我在Windows窗体中创建了一个小游戏,我使用属性backgroudimage。 我创建了新的Bitmaps并将其提供给表单。 问题是,该程序使用了太多的内存 - 每次它做新的Bitmap的过程它增加了2k! 过了一会儿,我猜垃圾收集器将它们全部移除(内存一下子掉落),但它可以达到800k,这对我的小游戏来说太荒谬了。 我把它放到form属性后,我没有任何引用Bitmap,即使我把位图置为null,问题也没有解决。 我该怎么做才能解决内存问题?谢谢!

1 个答案:

答案 0 :(得分:2)

在设置新图像之前获取对上一图像的引用,以便您可以处置它:

Image oldImage = this.BackgroundImage;
this.BackgroundImage = newImage;
oldImage.Dispose();