在1.x的时候就遇到过位图没有释放造成图片文件无法使用的问题.今天使用2.0写代码的时候又发生了.
主要情况如下:
使用Bitmap b = new Bitmap("filename");创建位图.一般情况下,在b.Dispose();后可以解锁文件.
后改用using语句使其自动释放.
但在释放位图前,如果使用了Bitmap bnew = b.Clone() as Bitmap;将造成图片文件依然锁定,直到此克隆对象也调用释放语句.
现解决方法为使用创建相同大小位图,然后使用DrawImage方法绘制位图b.缺点是将会增加加载时间.优点是可以即时释放文件资源.
注:如果使用LockBits 方案直接对内存操作,进行复制,效率将大大提高.

文章来源:http://spaces.msn.com/sharkoo/Blog/cns!D8E832CE4545AF!192.entry