我有一个要保存的位图,并且不断收到“对象在其他地方当前正在使用”错误。现在,我知道GDI +的线程很烂,应该使用lock{}语句,但是它不起作用。我的代码在下面,我在做什么不正确?

Bitmap bitmap = new Bitmap();

lock (bitmap)
{
    bitmap.Save([filepath], ImageFormat.Png);
}

最佳答案

您应该锁定其他虚拟对象:

var objectForLock = new object()

lock (objectForLock)
{
    Bitmap bitmap = new Bitmap();
    bitmap.Save([filepath], ImageFormat.Png);
}

不知道这是否是您的问题,但这是lock在.Net中的工作方式。

关于c# - 使用lock语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10587844/

10-13 04:18