Sdílet prostřednictvím


StringDictionary.IsSynchronized Vlastnost

Definice

Získá hodnotu označující, zda přístup k objektu StringDictionary je synchronizován (bezpečný pro přístup z více vláken).

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

Hodnota vlastnosti

true pokud je přístup k souboru StringDictionary synchronizovaný (bezpečný pro přístup z více vláken), v opačném případě false.

Příklady

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

StringDictionary^ myCollection = gcnew StringDictionary();
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);
    }
}
StringDictionary myCollection = new StringDictionary();
lock(myCollection.SyncRoot)
{
    foreach (Object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As New StringDictionary()
SyncLock myCollection.SyncRoot
    For Each item As Object In myCollection
        ' Insert your code here.
    Next item
End SyncLock

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

Poznámky

Instance StringDictionary není synchronizována. Odvozené třídy mohou poskytovat synchronizovanou verzi objektu StringDictionary 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