锁定的最佳静态对象是什么?有没有比别人更好的?

时间:2012-11-29 17:39:54

标签: c# multithreading concurrency locking

  

可能重复:
  Is there any reason to lock on something other than new object()?

我想知道锁定的最佳私有静态对象是什么,如果确实存在差异。

目前,我的大部分代码都是:

private static object m_lockObject = new object();

lock(m_lockObject)
{
    ..critical thread code here
}

我应该使用不同的类型,而不是只锁定一个对象?像自定义类实例,int或字符串等......?或者没关系?

由于

1 个答案:

答案 0 :(得分:1)

Lock语句只是底层 Monitor 对象的语法糖。出于锁定的目的,它使用引用。从监视器的角度来看,无论是什么参考都没关系!但是,由于字符串 interned ,锁定string可能会导致意外结果。锁定值类型会因拳击而导致异常。

TL; DR版本 - 你做得很对(如果static部分真的是你想要的行为)

相关问题