功能中的本地锁定对象变量

时间:2018-06-20 00:22:23

标签: c#

在尝试解释别人的代码时,我偶然发现了这种锁定方法,并且感到困惑:

public void CloseHandle(SafeFileHandle handle)
{
   var thisLock = new Object();

   lock (thisLock)
       handle.Close();
}

对我来说,这似乎是在锁定一个新实例。每次调用该方法时,对象就不会被锁定,因为一个以上的线程永远不会锁定对象的同一实例。我在这里想念东西吗?

1 个答案:

答案 0 :(得分:4)

您的假设是正确的,这是一个错误,没有真正的锁定发生