2016-05-15 17 views
3

In meinem C# Konsolenanwendung, beginne ich eine neue Aufgabe und eine Funktion aufrufen, die mich Variablen zu können, erfordert den Zugriff auf die in der Haupt-Thread definiert wurden, zum Beispiel:Zugriff Variablen im Haupt-Thread im zweiten Thread definiert?

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; 
    } 
} 

Das Problem, dass die oben ist Der Variablenwert ExampleVarForQuestion kann in ExampleVarForQuestion() nicht erreicht werden. Ich bin ziemlich neu in C#, also wenn diese Frage nicht sehr gut formuliert war, tut mir leid.

Antwort

2

Damit es erreicht werden kann, muss es öffentlich sein, da Ihre Methode in einer anderen Klasse definiert ist.

Beachten Sie, dass wenn das Element von einem anderen Thread geschrieben wird, sollten Sie eine Form der Synchronisierung hinzufügen, um Thread-Sicherheit zu gewährleisten.

+0

Danke :) Ich fühle mich wie ein Idiot .. Es war so einfach! – C0d1ng

+2

@ C0d1ng Ich bin froh, dass es dir geholfen hat. Wenn es Ihre Frage beantwortet, vergessen Sie nicht, es als die Antwort zu markieren :) – Slugart

+0

Ich werde nach 5 Minuten :) Es sagt, ich muss noch 5 Minuten warten, bevor ich Ihre Frage als "Antwort" markieren kann:/ – C0d1ng

Verwandte Themen