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

时间:2016-05-15 08:45:58

标签: c# multithreading

在我的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 个答案:

答案 0 :(得分:2)

要达到它,它必须是公共的,因为你的方法是在另一个类中定义的。

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