读书人

GDI+位图施用完毕后Dispose没有完全对

发布时间: 2013-01-20 10:22:41 作者: rapoo

GDI+位图使用完毕后Dispose没有完全对对象进行销毁为何?

    progressBar1.Maximum = images.Count;
foreach (string image in images)
{
progressBar1.Value = progressBar1.Value + 1;

using (Bitmap Temp = new Bitmap(Image.FromFile(image)))
{
using (Bitmap narTemp = new Bitmap(imageList1.ImageSize.Width, imageList1.ImageSize.Height))
{
using (Graphics g = Graphics.FromImage(narTemp))
{

//Picsize = FitSize(Temp.Width, Temp.Height, narTemp.Width, narTemp.Height);
////Point tempxy;
////tempxy = PointXY(Picsize, narTemp.Width, narTemp.Height);
//g.DrawImage(Temp, 0, 0, (int)(Temp.Width * Picsize.fitsize), (int)(Temp.Height * Picsize.fitsize));
//g.Dispose();
//imageList1.Images.Add(narTemp);
g.Dispose();


}
narTemp.Dispose();

}
Temp.Dispose();
}

}
images.Clear();

GDI+位图施用完毕后Dispose没有完全对对象进行销毁为何
为何会造成内存泄露啊 dispose 没有完全销毁啊 求各位大大解答下。。。。 闲下来的时候已经没心思写代码了。。。

如果条件允许的情况下,你可以去分段读取,但是这样你就得考虑一点,如果操作太频繁,会不会影响到用户体验因为我也不知道你做的是什么,也不好给你解释出会造成的影响。
[解决办法]
引用:
引用:引用:
引用:怎么看出有内存泄漏?

你用using块了,其实就不需要再给using块的对象Dispose了
系统会自动回收
任务管理器 执行过程前后的内存占用量 我只调用了这段代码

这跟内存泄漏 没关系,处理大量图像会占用内存,等会儿就会下去的
你……


bmp类型的文件你先用BinaryReader读下,判断是不是坏的,把坏的bmp先删了,再用image

读书人网 >.NET

热点推荐