C# 为什么锁定(objLock)比锁定(this)更好

C# 为什么锁定(objLock)比锁定(this)更好,c#,locking,C#,Locking,可能的重复项: 在C#中,通常使用lock(objLock),其中objLock是仅为锁定目的而创建的对象 为什么这个比锁(这个)好?锁定(这个)除了锁定类本身之外还有什么负面影响?因为其他东西可能会锁定实例,那么就会出现死锁 如果您锁定专门为此目的创建的对象,您就知道自己处于完全控制之中,其他任何东西都不会意外地锁定它。如果您锁定任何公共对象,则该类和其他一些类都可以尝试获得锁定。创建同步对象非常容易,而且总是首选对象 private syncLock = new Object(); 这

可能的重复项:


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


为什么这个比锁(这个)好?锁定(这个)除了锁定类本身之外还有什么负面影响?

因为其他东西可能会锁定实例,那么就会出现死锁


如果您锁定专门为此目的创建的对象,您就知道自己处于完全控制之中,其他任何东西都不会意外地锁定它。

如果您锁定任何公共对象,则该类和其他一些类都可以尝试获得锁定。创建同步对象非常容易,而且总是首选对象

private syncLock = new Object();

这是一个功能,不是一个bug!另一个类希望以独占方式访问此实例的是什么?