Dictionary<TKey,TValue>.ICollection.SyncRoot Property

Definition

Ruft ein Objekt ab, mit dem der Zugriff auf ICollection synchronisiert werden kann.Gets an object that can be used to synchronize access to the ICollection.

property System::Object ^ System::Collections::ICollection::SyncRoot { System::Object ^ get(); };
object System.Collections.ICollection.SyncRoot { get; }
member this.System.Collections.ICollection.SyncRoot : obj
 ReadOnly Property SyncRoot As Object Implements ICollection.SyncRoot

Property Value

Object

Ein Objekt, mit dem der Zugriff auf ICollection synchronisiert werden kann.An object that can be used to synchronize access to the ICollection.

Implements

Remarks

Standardimplementierungen der Auflistungen im System.Collections.Generic-Namespace werden nicht synchronisiert.Default implementations of collections in the System.Collections.Generic namespace are not synchronized.

Die Enumeration einer Auflistung ist systemintern keine threadsichere Prozedur.Enumerating through a collection is intrinsically not a thread-safe procedure. Um während der Enumeration Threadsicherheit zu garantieren, können Sie die Auflistung während der gesamten Enumeration sperren.To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. Um den Lese- und Schreibzugriff auf diese Auflistung durch mehrere Threads zuzulassen, müssen Sie eine eigene Synchronisierung implementieren.To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.

Die SyncRoot-Eigenschaft gibt ein Objekt zurück, das zum Synchronisieren des Zugriffs auf die ICollectionverwendet werden kann.The SyncRoot property returns an object that can be used to synchronize access to the ICollection. Die Synchronisierung ist nur wirksam, wenn alle Threads das Objekt Sperren, bevor Sie auf die Auflistung zugreifen.Synchronization is effective only if all threads lock the object before accessing the collection. Der folgende Code zeigt die Verwendung der SyncRoot-Eigenschaft für C#, C++und Visual Basic.The following code shows the use of the SyncRoot property for C#, C++, and Visual Basic.

ICollection ic = ...;  
lock (ic.SyncRoot) {  
   // Access the collection.  
}  
Dim ic As ICollection = ...  
SyncLock ic.SyncRoot  
   ' Access the collection.  
End SyncLock  
ICollection^ ic = ...;  
try {  
   Monitor::Enter(ic->SyncRoot);  
   // Access the collection.  
}  
finally {  
   Monitor::Exit(ic->SyncRoot);  
}  

Das Abrufen des Werts dieser Eigenschaft ist ein O (1)-Vorgang.Getting the value of this property is an O(1) operation.

Applies to

See also