相关疑难解决方法(0)


何时使用锁定指南

我想知道开发人员应该遵循何时(以及在何处)放置锁的指导方针.

例如:我理解应锁定此类代码,以避免另一个线程意外更改SomeHeapValue值的可能性.

class Foo
{
  public SomeHeapObject myObject;
  public void DoSummat(object inputValue_)
  {
    myObject.SomeHeapValue = inputValue_;
  }

}
Run Code Online (Sandbox Code Playgroud)

然而,我的问题是,锁定有多深?例如,如果我们有这个代码:

class Foo
{
  public SomeHeapObject myObject;
  public void DoSummat(object inputValue_)
  {
    myObject.SomeHeapValue = GetSomeHeapValue();
  }

}
Run Code Online (Sandbox Code Playgroud)

我们应该锁定DoSummat(...)方法,还是应该锁定GetSomeHeapValue()方法?

在编写多线程代码时,是否有任何指导都要牢记在心?

c# multithreading locking

17
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×2

multithreading ×2

linq ×1

locking ×1

task-parallel-library ×1

wpf ×1