在试图解释别人的代码时,我偶然发现了这种锁定方法,我很困惑:
public void CloseHandle(SafeFileHandle handle)
{
var thisLock = new Object();
lock (thisLock)
handle.Close();
}
对我来说,这似乎是在每次调用该方法时锁定对象的新实例,因此根本不会真正“锁定”,因为多个线程永远不会锁定对象的同一实例。我在这里遗漏了什么吗?
请您参考如下方法:
你的假设是正确的,那是一个错误,并没有发生真正的锁定
