C#中类似Java的线程同步

JCa*_*sso 2 c# java multithreading thread-safety

我是一名Java程序员,我知道一些关于线程化Java的事情.

在Java中,我可以使用synchronized关键字锁定方法:

private int a;
private int b;
private int c;
private synchronized void changeVars()
{
  a = 4;
  b = 2;
  c = a+b;
}
Run Code Online (Sandbox Code Playgroud)

我在msdn中搜索过,看到c#中有一些玩具可以玩线程.如monitor.Enter,monitor.Exit,lock或高级的互斥锁.

但我需要的是同步一种方法.它在c#中的等价物是什么?

提前致谢.

Fac*_*Vir 6

在C#中没有直接的等价物,但你可以用这个做同样的事情:

private readonly object changeVarsLockObject = new object();

private void changeVars()
{
  lock(changeVarsLockObject)
  {
    a = 4;
    b = 2;
    c = a+b;
  }
}
Run Code Online (Sandbox Code Playgroud)