日期:2014-05-20  浏览次数:20851 次

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 没有完全销毁啊 求各位大大解答下。。。。
------解决方案--------------------
引用:
引用:我想会不会是你图片的原因?加载两加小的图片试试?图片均不超过1200*1800


这图片,过多的话肯定还是会溺出的,我控件的图片都是QQ头像的大小,至于你所问的解决方案,我只能说还没有解决,前些天忙着写项目,然后这几天上头需求不停的改····闲下来的时候已经没心思写代码了。。。