object theLock = new object();
...
lock (theLock)
{
...
}
我总是用一个new object()
为此,但我想知道:是否有任何情况下您会锁定更具体的类型?
在我看来,任何引用类型都可以被锁定,使用虚拟对象的原因是为了避免常见的锁定陷阱:
常见的构造锁(this),
锁(typeof(MyType)),和锁
(“myLock”)违反了此准则:
lock (this) is a problem if the instance can be accessed publicly.
lock (typeof (MyType)) is a problem if MyType is publicly
无障碍。
lock("myLock") is a problem because any other code in the process
使用相同的字符串,将共享
相同的锁。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)