使用锁(这个)的一个很好的理由?

时间:2013-10-22 00:23:37

标签: c# multithreading locking

有许多帖子,投票和答案表明使用lock (this)不是推荐模式(更不用说是坏模式)。

例如,请查看this one

我正在尝试稍微研究这种模式,并想问一下是否有人可以想到实际推荐使用lock (this)的情况,或者甚至必须

2 个答案:

答案 0 :(得分:0)

经验法则:永远不要锁定它,但要创建一个单独的(私有)对象来锁定。

但是......问题更深层:锁定有一个目的,通过锁定你对上层对象提供保护,但它不会阻止更新例如集合中的底层对象。

在大多数情况下,不需要锁定。我建议阅读这个主题。

有关SO的多个问题可以解答您的问题。不应该很难就没有锁定这一点的动机建立意见。

An example and pointers for further reading can be found on the blog of Phil Haack

答案 1 :(得分:0)

锁定这是邪恶的。这意味着有人可能决定锁定您的实例。这意味着您的实例将等到其他人释放它。