函数中的局部锁定对象变量

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


public void CloseHandle(SafeFileHandle handle)

{

   var thisLock = new Object();


   lock (thisLock)

       handle.Close();

}

对我来说,这似乎是在每次调用该方法时锁定对象的一个新实例,因此根本不会真正“锁定”,因为多个线程永远不会锁定对象的同一个实例。我在这里错过了什么吗?


GCT1015
浏览 180回答 1
1回答

慕慕森

你的假设是正确的,这是一个错误,没有真正的锁定发生
打开App,查看更多内容
随时随地看视频慕课网APP