Sdílet prostřednictvím


HybridDictionary.IsSynchronized Vlastnost

Definice

Získá hodnotu označující, zda HybridDictionary je synchronizován (bezpečný z více vláken).

public:
 property bool IsSynchronized { bool get(); };
public bool IsSynchronized { get; }
member this.IsSynchronized : bool
Public ReadOnly Property IsSynchronized As Boolean

Hodnota vlastnosti

Tato vlastnost vždy vrátí hodnotu false.

Implementuje

Příklady

Následující příklad kódu ukazuje, jak zamknout kolekci SyncRoot pomocí příkazu během celého výčtu.

HybridDictionary^ myCollection = gcnew HybridDictionary();
bool lockTaken = false;
try
{
    Monitor::Enter(myCollection->SyncRoot, lockTaken);
    for each (Object^ item in myCollection)
    {
        // Insert your code here.
    }
}
finally
{
    if (lockTaken)
    {
        Monitor::Exit(myCollection->SyncRoot);
    }
}
HybridDictionary myCollection = new HybridDictionary();
lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As New HybridDictionary()
SyncLock myCollection.SyncRoot
    For Each item In myCollection
        ' Insert your code here.
    Next
End SyncLock

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

Poznámky

HybridDictionary implementuje IsSynchronized vlastnost, protože je vyžadována rozhraním System.Collections.ICollection .

Odvozené třídy mohou poskytovat synchronizovanou verzi HybridDictionary pomocí SyncRoot vlastnosti.

Výčet prostřednictvím kolekce nemůže být procedurou bezpečnou pro přístup z více vláken. I v případě, že jde o synchronizovanou kolekci, mohou úpravy provádět i ostatní vlákna, což způsobuje vyvolání výjimky enumerátorem. K zaručení bezpečnosti přístupu z více vláken můžete buďto zamknout kolekci na celou dobu práce s výčtem, nebo zachycovat výjimky vzniklé v důsledku změn prováděných ostatními vlákny.

Platí pro

Viz také