为什么锁定(objLock)比锁定(这个)更好

时间:2009-05-21 11:47:04

标签: c# locking

  

可能重复:
  Why is lock(this) {...} bad?


在C#中,通常使用lock(objLock),其中objLock是为了锁定而创建的对象。

为什么锁定(这个)更可取?除了锁定类本身之外,lock(this)的负面含义是什么?

2 个答案:

答案 0 :(得分:15)

因为其他东西可以锁定实例,那么你就会陷入僵局。

如果您锁定了专门为此目的而创建的对象,则您知道自己完全可以控制,并且没有其他任何内容会意外锁定它。

答案 1 :(得分:2)

如果锁定任何公共内容,那么该类和其他类都可以尝试锁定。创建同步对象很容易,而且总是优先考虑;

private syncLock = new Object();