相关疑难解决方法(0)

为什么锁(这个){...}不好?

MSDN文档说,

public class SomeObject
{
  public void SomeOperation()
  {
    lock(this)
    {
      //Access instance variables
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如果可以公开访问实例,那就是"一个问题".我想知道为什么?是因为锁定的持有时间超过了必要的时间吗?还是有一些更阴险的原因?

c# multithreading locking

462
推荐指数
6
解决办法
15万
查看次数

lock(this)和lock(thisLock)有什么区别?

我正在读锁定语句(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),那么请帮助我理解所有重点之间的差异.特别是,每个人究竟意味着什么?

c# multithreading locking

8
推荐指数
1
解决办法
1669
查看次数

标签 统计

c# ×2

locking ×2

multithreading ×2