C#中,GDI+使用Bitmap和e.Graphics
比如说:Bitmabitmap;Graphicsg=e.Graphics;然后最后使用完了之后,还要加一个bitmap.Dispose();g.Dispose();这是什...
比如说:Bitma bitmap;Graphics g=e.Graphics;
然后最后使用完了之后,还要加一个bitmap.Dispose();g.Dispose();
这是什么意思 展开
然后最后使用完了之后,还要加一个bitmap.Dispose();g.Dispose();
这是什么意思 展开
2个回答
展开全部
Bitma bitmap;Graphics g=e.Graphics;
这是对象声明语句,声明完之后会保存在系统内存中以便使用,会占用系统内存。
bitmap.Dispose();g.Dispose();
是释放资源语句,一般是在使用完之后写,意思是在内存中清除这两个对象,把内存清空出来以供,以免点内存。
这是对象声明语句,声明完之后会保存在系统内存中以便使用,会占用系统内存。
bitmap.Dispose();g.Dispose();
是释放资源语句,一般是在使用完之后写,意思是在内存中清除这两个对象,把内存清空出来以供,以免点内存。
追问
但是C#中不是有自动清除内存的功能么?为什么还要显示写代码来清除
追答
自动清除分两种方式, 一、自动清除。这种方式是在程序关闭时清除,就是说如果你的软件一直在运行,那么在运行过程中所创建的对象均保存在内存中,直到你到软件关闭。 二、手动清除,就是上面说的这个语句。这种清除方式是在引用这句语句的时候就清除。即立即清除,所以写.Dispose()是一个好习惯。 什么时候用.Dispose呢? 1、创建的对象太大,占资源大 2、在程序运行过程中,一般情况下可能不会重复使用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询