首页 新闻 搜索 专区 学院

GDI一般性错误

0
悬赏园豆:30 [待解决问题]

using (Bitmap gdiBitmap = new Bitmap(System.Configuration.ConfigurationSettings.AppSettings["imagePathren"]))
{//图片
// Thread.Sleep(5);
try
{
DeleteDC(hBitmap);
using (Bitmap bmp2 = new Bitmap(gdiBitmap.Width, gdiBitmap.Height))
{
//将第一个bmp拷贝到bmp2中
Graphics draw = Graphics.FromImage(bmp2);//这句报GDI 一般性错误
draw.DrawImage(gdiBitmap, 0, 0);

draw.Dispose();
gdiBitmap.Dispose();//释放bmp文件资源

hBitmap = bmp2.GetHbitmap();
IntBitmap = hBitmap.ToInt32();
image.Picture = utils.hBitmapToPicture(IntBitmap);
image.XllCenter = X - image.Width / 2;
image.YllCenter = Y - image.Width / 2;
if (Labellist[i].WorkerName != null && Labellist[i].WorkerName != "")
{
MapWinGIS.Labels la = new MapWinGIS.Labels();
la.AddLabel(Labellist[i].WorkerName, X, Y + 30, 0, 1);
la.FrameBackColor = (uint)ColorTranslator.ToOle(Color.Red);
la.FontColor = (uint)ColorTranslator.ToOle(Color.Red);
image.Labels = la;
la.Clear();

}
axMap.UpdateImage(hndl);
bmp2.Dispose();
}
}
catch (Exception ex)
{

}
}
Thread.Sleep(2000);
}
finally
{
DeleteDC(hBitmap);
GC.Collect();

}
}

刚开始不会出错,运行到9000多次后就开始报错了,为什么。我想知道原因,分不多求大虾解答。  这是委托实现的方法全部代码

问题补充:

DeleteObject删除


内存不怎么增长可是还是9000多次后保错是什么原因能说明一些吗? 求高手给我讲解一下

趁机的主页 趁机 | 初学一级 | 园豆:22
提问于:2011-12-23 18:59
< >
分享
所有回答(2)
0

出错位置? 运行多了才会出错好像一般都是内存溢出了~~

新的开始 | 园豆:679 (小虾三级) | 2011-12-23 22:49

有什么好的解决方法不, 运行久了内存会越来越大。总是清不掉里面,没有很好的释放

支持(0) 反对(0) 趁机 | 园豆:22 (初学一级) | 2011-12-24 15:06
0

DeleteDC(hBitmap);

hBitmap应该用DeleteObject删除

Greatest | 园豆:678 (小虾三级) | 2011-12-24 01:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册