在MSDN文档说,
public class SomeObject
{
public void SomeOperation()
{
lock(this)
{
//Access instance variables
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果可以公开访问实例,那就是"一个问题".我想知道为什么?是因为锁定的持有时间超过了必要的时间吗?还是有一些更阴险的原因?
我正在读锁定语句(C#参考),在那里我看到了这段代码:
class Account
{
private Object thisLock = new Object();
//...
int Withdraw(int amount)
{
lock (thisLock)
{
//....
}
}
//...
}
Run Code Online (Sandbox Code Playgroud)
我想知道如果我们写lock(this)而不是lock(thisLock)在上面的例子中会有什么不同.如果你的答案取决于它,请参阅完整的例子.
如果您认为lock(this)和之间确实存在一些差异lock(thisLock),那么请帮助我理解所有重点之间的差异.特别是,每个人究竟意味着什么?