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();

为何会造成内存泄露啊 dispose 没有完全销毁啊 求各位大大解答下。。。。 闲下来的时候已经没心思写代码了。。。
如果条件允许的情况下,你可以去分段读取,但是这样你就得考虑一点,如果操作太频繁,会不会影响到用户体验因为我也不知道你做的是什么,也不好给你解释出会造成的影响。
[解决办法]
bmp类型的文件你先用BinaryReader读下,判断是不是坏的,把坏的bmp先删了,再用image