项目场景:
使用vs 2019 进行图片的批量处理问题描述:
提示: 对象当前正在其他地方使用
原因分析:
因为文件对象没有释放内存导致每次都锁死了。image怎么释放内存System.Drawing.Image
一定要调用Dispose方法,或用using语句:
Image image1 = new Bitmap(filename1);
image1.Dispose();
image1 = new Bitmap(filename2);
解决方案:
1)如果不是GDI+绘图的话,使用只读方式打开(非独占),不会影响其他软件再打开文件。
2)打开文件复制到内存后立即关闭。
3)可以考虑写一个方法,将取图片做为原子性操作(锁机制),只能解决程序内占用问题。同时还要考虑死锁的发生。