相关疑难解决方法(0)

锁定多个线程中的变量

我是C#的新手,我想询问我是否在MULTI THREADS(伪代码)中遇到这种情况:

public class ClassA
{
     ClassB c = new ClassB();
     public void someMethod()
     {
          c.myVar = 1;
          // Some other stuff
          c.myVar = 0;
     }
}

public class ClassB
{
     internal int myVar;

     public void MethodA()
     {
        if(myVar = 1)
              myVar = 0;
     }
}
Run Code Online (Sandbox Code Playgroud)

如果someMethod()MethodA()可以在单独的线程中处于活动状态,则MethodA()可以将if语句评估为true; 但在它设置之前myVar = 0,someMethod()设置myVar = 0为不正确设置myVar为0 MethodA()!!

基本上,我如何锁定myVar:

  • 我可以lock{}myVar"财产(设置,获取)
  • 我需要使用Interlock(Interlock …

c# variables multithreading locking

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

标签 统计

c# ×1

locking ×1

multithreading ×1

variables ×1