Stack<T>.ICollection.SyncRoot Vlastnost

Definice

Získá objekt, který lze použít k synchronizaci přístupu k ICollection.

object System.Collections.ICollection.SyncRoot { get; }

Hodnota vlastnosti

Objekt, který lze použít k synchronizaci přístupu k objektu ICollection. Ve výchozí implementaci nástroje Stack<T>vrátí tato vlastnost vždy aktuální instanci.

Implementuje

Poznámky

Výchozí implementace kolekcí v systému System.Collections.Generic se nesynchronují.

Výčet prostřednictvím kolekce nemůže být procedurou bezpečnou pro přístup z více vláken. Abyste zajistili bezpečnost vláken během výčtu, můžete kolekci uzamknout 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.

SyncRoot vrátí objekt, který lze použít k synchronizaci přístupu k objektu ICollection. Synchronizace je platná pouze v případě, že všechna vlákna uzamknou tento objekt před přístupem ke kolekci. Následující kód ukazuje použití SyncRoot vlastnosti pro C#, C++ a Visual Basic.

ICollection ic = ...;  
lock (ic.SyncRoot) {  
   // Access the collection.  
}  

Načtení hodnoty této vlastnosti je operace O(1).

Platí pro

Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Viz také