当前位置: 代码迷 >> C# >> Bit地图释放内存有关问题
  详细解决方案

Bit地图释放内存有关问题

热度:29   发布时间:2016-05-05 03:36:55.0
Bitmap释放内存问题
先上代码:

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;
  }
  相关解决方案