在尝试解释别人的代码时,我偶然发现了这种锁定方法,并且感到困惑:
public void CloseHandle(SafeFileHandle handle)
{
var thisLock = new Object();
lock (thisLock)
handle.Close();
}
对我来说,这似乎是在锁定一个新实例。每次调用该方法时,对象就不会被锁定,因为一个以上的线程永远不会锁定对象的同一实例。我在这里想念东西吗?
答案 0 :(得分:4)
您的假设是正确的,这是一个错误,没有真正的锁定发生