如何在第二个线程中访问主线程定义的变量?

3
在我的C#控制台应用程序中,我启动了一个新任务并调用了需要访问在主线程中定义的变量的函数,例如:
class Example
{
    static int ExampleVarForQuestion = 1;
    int Main()
    {
        new Task(WhereProblemOccures.ExampleFunction).Start();
    }
}

class WhereProblemOccures
{
    static int ExampleFunction()
    {
        if(Example.ExampleVarForQuestion == 1)
            return 1;
        else
            return 0;
    }
}

问题在于上述变量值ExampleVarForQuestion无法在ExampleVarForQuestion()中被访问。由于我对C#比较陌生,如果这个问题表述不够清楚,请见谅。
1个回答

2

为了访问它,它必须是公共的,因为你的方法定义在另一个类中。

请注意,如果该成员将被另一个线程写入,您应该添加某种形式的同步以保证线程安全。


2
@C0d1ng 很高兴能帮到你。如果它回答了你的问题,请别忘记将其标记为答案 :) - Slugart
我再过5分钟就可以了 :) 它说我还需要等待另外5分钟才能将你的问题标记为“答案” :/ - C0d1ng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接