先上代码:
private void ChangeColor()
{
Bitmap bmp = new Bitmap(GoldenMap);
//各种代码
pictureBox1.Image = bmp;
}
其中GoldenMap是不变的图片。
我现在在一个滑块的事件函数中调用这个方法,由于图片没有被释放导致内存爆满,然后报错。
请问下这个问题怎么解决?谢谢
------解决思路----------------------
private void ChangeColor()
{
if (pictureBox1.Image != null)
{
pictureBox1.Image.Dispose();
}
Bitmap bmp = new Bitmap(GoldenMap);
//各种代码
pictureBox1.Image = bmp;
}
在创建前判断下有没有图片, 有图片就先释放,
------解决思路----------------------
bmp.Dispose()
不放心或嫌麻烦,可以用 usign 包起来(因为可能还有画笔、画刷、路径等需要释放)
usign(Bitmap bmp = new Bitmap(GoldenMap))
{
//各种代码
pictureBox1.Image = bmp;
}