Dieser Artikel verwendet List als Operationsobjekt MSDN gibt offiziell die Sicherheitserklärung zum Thread List: Diese Art von öffentlichem statischem Mitglied ist threadsicher. Allerdings kann kein Instanzmitglied garantiert threadsicher sein. Solange die Sammlung nicht verändert wird, kann List mehrere Leser gleichzeitig unterstützen. Das Aufzählen durch eine Menge ist von Natur aus kein threadsicherer Prozess. Im seltenen Fall, dass eine Aufzählung mit einem oder mehreren Schreibzugriffen konkurriert, besteht die einzige Möglichkeit, Threads zu schützen, darin, die Sammlung für die gesamte Dauer der Aufzählung zu sperren. Damit mehrere Threads für Lese- und Schreiboperationen auf die Sammlung zugreifen können, müssen Sie Ihre eigene Synchronisation implementieren. Wenn du nicht synchronisierst? Wenn ein Thread eine Löschoperation und ein Thread eine Durchlaufoperation durchführt, wird während des Durchlaufprozesses die Sammlung verändert, was dazu führt, dass eine InvalidOperationException-Ausnahme erscheint, die bedeutet: Die Sammlung wurde verändert; Aufzählungsoperationen dürfen nicht durchgeführt werden. Wie man synchronisiert, um die Sicherheit der Durchquerung sicherzustellen Hier werden kritische Zonen und Mutexe verwendet, um den Threaddurchlauf zu sichern; der Beispielcode lautet wie folgt:
|