Queue<T>.ICollection.SyncRoot Queue<T>.ICollection.SyncRoot Queue<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 Queue<T> gibt diese Eigenschaft immer die aktuelle Instanz zurück.In the default implementation of Queue<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 zurück, mit dem der Zugriff auf ICollection synchronisiert werden kann.SyncRoot returns an object, which 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#die C++Visual Basic, und.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