Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问第二个线程中主线程中定义的变量?_C#_Multithreading - Fatal编程技术网

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

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

在我的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#很陌生,所以如果这个问题的措辞不太好,很抱歉。

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


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

@C0d1ng我很高兴它帮助了您。如果它回答了你的问题,别忘了把它标记为答案:)我会在5分钟后回答:)它说我必须再等5分钟才能把你的问题标记为“答案”:/