Hallo,
wenn ich zwei Threads habe und diese auf die gleiche Variable zugreifen wollen
kann ich ja mit
Monitor.Enter(_locker);
...zugriff auf Variable...
Monitor.Exit(_locker);
bewirken, dass nur einer der Threads auf diese Variable zugreift.
Aber was macht der andere Thread wartet der so lange oder überspringt er diesen Teil?
Statt der Konstruktion mit Enter und Exit sollte man besser lock verwenden, weil dann das Exit auch im Falle einer Exception im geschützten Bereich ausgeführt wird.
lock (x) {
...
}
entspricht
Monitor.Enter (x);
try {
...
}
finally {
Monitor.Exit (x);
}
Bitte schau das nächste Mal, wenn du wissen willst, was genau eine Methode tut, von alleine in deren Doku, siehe [Hinweis] Wie poste ich richtig? Punkt 1.1.