我的PictureBox的图像指向某个文件“ A”。在执行时,我想将PictureBox的图像更改为另一个“ B”,但是出现以下错误:
“ mscorlib.dll中发生类型’System.IO.IOException’的第一次机会异常。附加信息:该进程无法访问文件“ A”,因为它正在被另一个进程使用。“
我将图像设置如下:
pbAvatar.Image = new Bitmap(filePath);
如何解锁第一个文件?
一旦从文件中读取并处理了文件,使用文件流将对文件进行解锁:
using (var fs = new System.IO.FileStream("c:\\path to file.bmp", System.IO.FileMode.Open)) { var bmp = new Bitmap(fs); pct.Image = (Bitmap) bmp.Clone(); }
编辑: 更新以允许处置原始位图,并允许关闭FileStream。
此答案并不安全 -请参阅评论,并参阅net_prog的答案中的讨论。使用“编辑” Clone不会使其变得更安全-克隆会克隆所有字段,包括文件流引用,这在某些情况下会引起问题。
Clone