Collection<T>.ICollection.SyncRoot Collection<T>.ICollection.SyncRoot Collection<T>.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; }
 ReadOnly Property SyncRoot As Object Implements ICollection.SyncRoot

Eigenschaftswert

Ein Objekt, mit dem der Zugriff auf die ICollection synchronisiert werden kann.An object that can be used to synchronize access to the ICollection. In der Standardimplementierung der Collection<T> gibt diese Eigenschaft immer die aktuelle Instanz zurück.In the default implementation of Collection<T>, this property always returns the current instance.

Implementiert

Hinweise

Standardimplementierungen der Auflistungen in System.Collections.Generic sind nicht synchronisiert.Default implementations of collections in System.Collections.Generic 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.

SyncRoot Gibt ein Objekt, das verwendet werden kann, zum Synchronisieren des Zugriffs auf die ICollection.SyncRoot returns an object that can be used to synchronize access to the ICollection. Synchronisierung ist nur wirksam, wenn alle Threads dieses Objekt zu sperren, bevor Sie den Zugriff auf die Auflistung.Synchronization is effective only if all threads lock this 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.Retrieving the value of this property is an O(1) operation.

Gilt für:

Siehe auch