Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Die Lock-Anweisung | Threading
Fortgeschrittenes C# mit .NET
course content

Kursinhalt

Fortgeschrittenes C# mit .NET

Fortgeschrittenes C# mit .NET

1. Einführung in die Desktop-Entwicklung mit .NET
2. Interaktive GUI
3. Threading
4. Generics & Reflection

book
Die Lock-Anweisung

Beim Arbeiten mit mehreren Threads kann es Situationen geben, in denen mehrere Threads versuchen, gleichzeitig auf eine Ressource zuzugreifen und diese zu aktualisieren. Eine Ressource kann alles Mögliche sein, zum Beispiel eine Variable, eine Datei oder sogar eine entfernte Ressource, auf die über eine API zugegriffen wird.

Solche Situationen werden als "Race Conditions" bezeichnet, da die Threads normalerweise um dieselbe Ressource konkurrieren und das gleichzeitige Ändern derselben Ressource zu unvorhersehbaren und inkonsistenten Ergebnissen führen kann.

Wir können sicherstellen, dass es in unserer Anwendung keine Race Conditions gibt, indem wir den Code in lock-Anweisungen einschließen, wo immer erwartet wird, dass mehrere Threads versuchen könnten, diese Anweisungen gleichzeitig auszuführen.

Falls mehrere Threads versuchen, auf eine Ressource zuzugreifen oder ein Stück Code auszuführen, das in einem lock eingeschlossen ist, werden sie in eine Warteschlange eingereiht und gezwungen, nacheinander auf die Ressource zuzugreifen, wodurch jede Möglichkeit einer Race Condition effektiv ausgeschlossen wird.

Die Syntax für eine lock-Anweisung ist:

cs

index

copy
1234
object keyObject = new object(); lock(keyObject) { // code to execute }

Hier ist keyObject eine Instanz der object-Klasse und dient als Schlüssel, der die Synchronisation zwischen mehreren Threads gewährleistet. Dieses Objekt sollte für alle Threads dasselbe sein, daher ist es in der Regel eine gute Praxis, es entweder als statisches Mitglied zu machen oder es allen Threads ohne Änderungen zugänglich zu machen.

Das folgende Video demonstriert die Verwendung der lock-Anweisung:

1. Was ist der Zweck der lock-Anweisung in C#?

2. Welches Schlüsselwort wird verwendet, um einen kritischen Codeabschnitt zu definieren, der durch ein Lock geschützt ist?

Was ist der Zweck der lock-Anweisung in C#?

Was ist der Zweck der lock-Anweisung in C#?

Wählen Sie die richtige Antwort aus

Welches Schlüsselwort wird verwendet, um einen kritischen Codeabschnitt zu definieren, der durch ein Lock geschützt ist?

Welches Schlüsselwort wird verwendet, um einen kritischen Codeabschnitt zu definieren, der durch ein Lock geschützt ist?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5
We're sorry to hear that something went wrong. What happened?
some-alt