这是我从未理解的东西。它似乎像一个黑客创建一个虚拟对象,得到lock
版,喜欢的例子为什么我们需要在C#中锁定和对象?
class Account
{
decimal balance;
private Object thisLock = new Object();
public void Withdraw(decimal amount)
{
lock (thisLock)
{
if (amount > balance)
{
throw new Exception("Insufficient funds");
}
balance -= amount;
}
}
}
从https://msdn.microsoft.com/en-us/library/c5kehkcz.aspx。
为什么不能在语言的设计者让这个
class Account
{
decimal balance;
public void Withdraw(decimal amount)
{
lock
{
if (amount > balance)
{
throw new Exception("Insufficient funds");
}
balance -= amount;
}
}
}
会相同呢?
@Sayse一点都没有,否则没有人会明白如何使用'lock'。为什么需要'lock'语句需要传递一个参数的原因是非常清楚的,如果作者不理解这些原因,这个问题是非常有效的。 – rucamzu
@rucamzu - 我想我误读了这个问题 – Sayse