这个问题已经困惑我很久了。
在Form1上点击“显示”按钮,创建一个Form2显示一幅图像,这样连续不断的显示关闭,发现此程序的内存消耗会不断增加,不一会就达到100m的内存使用了。显示这幅图用了几种方法:
1.pictureBox1.Image = Image.FromFile("XXX.jpg");
2.FileStream fs = new FileStrean("xxx.jpg",FileMode.Open,FileAccess.Read);
  pictureBox1.Image = Image.FromStream(fs);
  fs.Close();
3.Bitmap bp = new Bitmap("xxx.jpg");
  pictureBox1.Image = bp;
就这三种来说都回造成内存使用增加,而且当我不再点击显示的时候过了很久内存使用率也不会下来,请高人指点啊

解决方案 »

  1.   

    但是在过程中把form1最小化一次,内存消耗仅为3m
      

  2.   

    比如说public Form2()
    {
        InitializeComponent();     Bitmap bp = new Bitmap("test.jpg");
        pictureBox1.Image = bp;
    }
    每次我都这样显示,在哪个地方调用Dispose()方法呢?
      

  3.   

    Image img = pictureBox1.Image;
    pictureBox1.Image = bp;
    if(img != null)img.Dispose();
      

  4.   

    在Form2关闭后调用Form2的Dispose方法试试
      

  5.   

    我把bp定义成全局变量,在form2关闭的时候调用bp.Dispose();内存每次都能够释放了
    速马的方法我试过了,还是不能解决。
    有没有不用定义为全局变量能把这个问题解决的
      

  6.   

    楼主能做的也只有调用 Image.Dispose()方法了
      

  7.   

    晕,想起来了,picutureBox1.Image = bp;
    是引用,所以调用picutureBox1.Image.Dispose()就行了