Hallo Zusammen
Ich bräuchte etwas Hilfe zum Thema Threadsicherheit.
Die Variabel Anzahl wird ständig von einem Thread verändert.
Ein zweiter Thread greift lesend darauf zu.
Folgendes Beispiel sollte einen Fehler ausgeben da der Inhalt sich während dem Lesen verändert.
Reicht es die Variabel als volatile zu deklarieren?
Ist es möglich die Variabel Anzahl mittels eines get/set Block zu schreiben/lesen und diesen dann komplett mit Lock zu sichern?
Bsp (dient nur zur Veranschaulichung):
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| class Thread1 { internal static List<int> Anzahl;
internal static void Loop() { while (true) { Anzahl.add(1); } } }
class Thread2 { internal static void out() { foreach (int u in Thread1.Anzahl) Console.Write(u); } } |
Moderiert von
Kha: Topic aus C# - Die Sprache verschoben am Di 23.08.2011 um 00:53