为什么使用lock(objLock)比使用lock(this)更好?

25 浏览
0 Comments

为什么使用lock(objLock)比使用lock(this)更好?

这个问题已经有了答案:

可能的重复:

为什么lock(this) {...}是不好的?


在C#中,常见的做法是使用lock(objLock),其中objLock是一个仅用于加锁目的而创建的对象。

为什么这比使用lock(this)更可取?除了在类本身上获得锁之外,lock(this)还有哪些负面影响?

admin 更改状态以发布 2023年5月25日
0
0 Comments

如果您锁定任何公共对象,那么该类和其他类都可以尝试获取锁定。创建同步对象非常容易,并且始终是首选;

private syncLock = new Object();

0
0 Comments

因为其他的东西可能会锁定该实例,这会导致死锁。\n如果你锁定你为此创建的对象,则你知道你完全掌控,而且不会有其他意外锁定它。

0