各位大侠:
本人自己编写了一个绘图控件,主要功能是在一张BMP上面画图并显示给用户,因此每个控件实例维护着BMP文件,当控件的实例比较少时,没有问题,但当控件达数十个之多时,出现内存溢出,导致无法创建BMP实例,抛出异常。请问如何解决!
在窗口重绘时我虽然创建新的BMP,但是我强制调用了GC.Collect();应该不是内存释放的问题。
paste your code
private void LineDrawer_Paint(object sender, PaintEventArgs e) //重绘事件
{
this.DrawMap();
}
private void DrawMap() //画图主程序
{
map = new Bitmap(this.pictureBox1.Width, this.pictureBox1.Height);
gs = Graphics.FromImage(map);
gs.Clear(Color.White);
画图...
gs.Dispose();
map=null;
GC.Collect();
}
@hmqr: 贴的代码实在太少了,没办法找问题的
估计是没有办法了,我自己把我其中一个地方创建测试DC的地方直接从pictureBox获取,减小了不少的内存分配,问题初步解决了