C#界面设计--6--“对象当前正在其他地方使用” --aviWriter.AddFrame(bitmap2)多线程录像时出现-已解决

问题:

 aviWriter.AddFrame(bitmap2)多线程录像时出现:“对象当前正在其他地方使用” 

C#界面设计--6--“对象当前正在其他地方使用” --aviWriter.AddFrame(bitmap2)多线程录像时出现-已解决

 

C#界面设计--6--“对象当前正在其他地方使用” --aviWriter.AddFrame(bitmap2)多线程录像时出现-已解决

原因:

Image.Save 方法不是线程安全的(很多GDI+的方法都不是线程安全的)。同时、对同一个Image对象实例进行处理,就可能会导致线程异常。

两个线程同时访问了同一幅图像, 造成冲突。简单的方法是在每个线程都要拥有自己的一份图像副本。分别对自己的副本进行对写操作。
 

解决:

对返回值的类型做调整:如果Image字段必须要,改用byte[]类型。