Dictionary<TKey,TValue>.ICollection.SyncRoot Dictionary<TKey,TValue>.ICollection.SyncRoot Dictionary<TKey,TValue>.ICollection.SyncRoot Property

Definice

Získává objekt, který lze použít k synchronizaci přístupu k ICollection.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

Hodnota vlastnosti

Objekt, který lze použít k synchronizaci přístupu k ICollection.An object that can be used to synchronize access to the ICollection.

Implementuje

Poznámky

Výchozí implementace kolekcí v System.Collections.Generic oboru názvů nejsou synchronizované.Default implementations of collections in the System.Collections.Generic namespace are not synchronized.

Výčet prostřednictvím kolekce nemůže být procedurou bezpečnou pro přístup z více vláken.Enumerating through a collection is intrinsically not a thread-safe procedure. Pro zajištění bezpečnosti vlákna během výčtu můžete kolekci uzamknout během celého výčtu.To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. Chcete-li více vláknům umožnit přístup ke kolekci pro čtení a zápis, musíte implementovat svou vlastní synchronizaci.To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.

Vlastnost vrátí objekt, který lze použít k synchronizaci přístupu ICollectionk. SyncRootThe SyncRoot property returns an object that can be used to synchronize access to the ICollection. Synchronizace je platná pouze v případě, že všechna vlákna zamkne objekt před přístupem ke kolekci.Synchronization is effective only if all threads lock the object before accessing the collection. Následující kód ukazuje použití SyncRoot vlastnosti pro C#, C++a 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);  
}  

Získání hodnoty této vlastnosti je operace O (1).Getting the value of this property is an O(1) operation.

Platí pro

Viz také