ReadOnlyCollection<T>.ICollection.SyncRoot ReadOnlyCollection<T>.ICollection.SyncRoot ReadOnlyCollection<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 ReadOnlyCollection<T> gibt diese Eigenschaft immer die aktuelle Instanz zurück.In the default implementation of ReadOnlyCollection<T>, this property always returns the current instance.

Implementiert

Hinweise

Standard Implementierungen von Auflistungen in System.Collections.Generic werden 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. Die Synchronisierung ist nur wirksam, wenn alle Threads dieses Objekt Sperren, bevor Sie auf die Auflistung zugreifen.Synchronization is effective only if all threads lock this object before accessing the collection. Der folgende Code zeigt die Verwendung SyncRoot der-Eigenschaft für C#, Visual C++und Visual Basic.The following code shows the use of the SyncRoot property for C#, Visual 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.

Bei diesem Member handelt es sich um eine explizite Schnittstellenmemberimplementierung.This member is an explicit interface member implementation. Er kann nur verwendet werden, wenn die ReadOnlyCollection<T>-Instanz in eine IDisposable-Schnittstelle umgewandelt wird.It can be used only when the ReadOnlyCollection<T> instance is cast to an IDisposable interface.

Gilt für:

Siehe auch