4,818
社区成员
发帖
与我相关
我的任务
分享 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();

闲下来的时候已经没心思写代码了。。。
如果条件允许的情况下,你可以去分段读取,但是这样你就得考虑一点,如果操作太频繁,会不会影响到用户体验···因为我也不知道你做的是什么,也不好给你解释出会造成的影响。
从表面上看,你这段代码可以说是没有任何问题的, 我前段时间写一个ListBox控件也是同样,可以显示文字和图片,但是加载几千项,也就是几千张图片是没有问题的,但是加载1W项就会报内存溺出了。
所以我估计应该是:图片太大,和图片过多引起。
我想会不会是你图片的原因?加载两加小的图片试试?