SortedDictionary<TKey,TValue>.ValueCollection.ICollection.SyncRoot Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá objekt, který lze použít k synchronizaci přístupu k .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
Hodnota vlastnosti
Objekt, který lze použít k synchronizaci přístupu k objektu ICollection. Ve výchozí implementaci vrátí SortedDictionary<TKey,TValue>.ValueCollectiontato vlastnost vždy aktuální instanci.
Implementuje
Poznámky
Výchozí implementace kolekcí v System.Collections.Generic oboru názvů nejsou synchronizovány.
Výčet prostřednictvím kolekce nemůže být procedurou bezpečnou pro přístup z více vláken. Chcete-li zajistit bezpečnost vláken během výčtu, můžete uzamknout kolekci během celého výčtu. Chcete-li více vláknům umožnit přístup ke kolekci pro čtení a zápis, musíte implementovat svou vlastní synchronizaci.
Vlastnost SyncRoot vrátí objekt, který lze použít k synchronizaci přístupu k objektu ICollection. Synchronizace je účinná pouze v případě, že všechna vlákna uzamknou objekt před přístupem ke kolekci. Následující kód ukazuje použití SyncRoot vlastnosti pro jazyky C#, C++ a 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).