/ / .NET-Wörterbuch: Ist nur der Thread sicher auflistet? - .net, Multithreading, Wörterbuch, Thread-Sicherheit

.NET-Wörterbuch: wird nur Thread-sicher aufgezählt? - .net, Multithreading, Wörterbuch, Thread-Sicherheit

Ist das Auflisten eines .NET Dictionary aus mehreren Threads sicher?

Es findet überhaupt keine Änderung des Wörterbuchs statt.

Antworten:

10 für die Antwort № 1

Ja, in diesem Fall ist die Aufzählung seit dem Beginn von a threadsicher foreach Schleife Eine neue Instanz des Enumerators wird mit einem impliziten Aufruf von erstellt GetEnumerator.


9 für die Antwort № 2

Ja ... na ja fast:

Ein Dictionary <(Of <(TKey, TValue>)>) kann unterstützenmehrere Leser gleichzeitig, solange die Sammlung wird nicht geändert. Sogar so, Aufzählung durch eine Sammlung ist Eigentlich kein Thread-Safe Verfahren. In dem seltenen Fall, wo ein Aufzählung konkurriert mit schreiben Zugriffe, muss die Sammlung sein während der gesamten Aufzählung gesperrt. Um den Zugriff auf die Sammlung zu ermöglichen durch mehrere Threads zum Lesen und Schreiben, müssen Sie Ihre eigenen implementieren Synchronisation.

(ref)