C# Methode nur 1x zur Zeit ausführen, sonst return?

1 Antwort

Um sicherzustellen, dass eine Methode in C# nur einmal gleichzeitig ausgeführt wird, kannst du eine "lock" -Anweisung verwenden. Die "lock" -Anweisung sperrt ein Objekt und führt den Codeblock, der darauf folgt, atomar aus, was bedeutet, dass der Codeblock für andere Threads blockiert wird, bis er abgeschlossen ist. Hier ist ein Beispiel:

private object _lockObject = new object();

public void MyMethod() { 
lock (_lockObject) {
 // Code, der nur einmal gleichzeitig ausgeführt werden soll 
  } 
}
Woher ich das weiß:eigene Erfahrung
R4c1ngCube 
Fragesteller
 24.12.2022, 04:18

Gerade wollte ich schreiben, dass ich ja geschrieben habe, warum ich kein Lock verwenden kann.

Aber dann ist mir zum Glück noch aufgefallen, dass du Recht hast und ich das Lock nur an anderer Stelle verwenden muss als ich dachte und die eigentliche critical section ja der obere Teil der Methode ist.

Danke!

0