Udostępnij za pośrednictwem


StringDictionary.IsSynchronized Właściwość

Definicja

Pobiera wartość wskazującą, czy dostęp do elementu StringDictionary jest synchronizowany (bezpieczny wątek).

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

Wartość właściwości

true jeśli dostęp do elementu StringDictionary jest synchronizowany (bezpieczny wątkowy); w przeciwnym razie false.

Przykłady

W poniższym przykładzie kodu pokazano, jak zablokować kolekcję przy użyciu SyncRoot elementu w trakcie całego wyliczenia.

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

Pobieranie wartości tej właściwości jest operacją O(1).

Uwagi

Wystąpienie StringDictionary nie jest zsynchronizowane. Klasy pochodne mogą zapewnić zsynchronizowaną wersję StringDictionary właściwości .SyncRoot

Wyliczanie w kolekcji nie jest wewnętrznie procedurą odporną na wielowątkowość. Nawet gdy kolekcja jest synchronizowana, inne wątki nadal mogą ją modyfikować. Powoduje to zgłaszanie wyjątku przez moduł wyliczający. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, można zablokować kolekcję podczas całego procesu wyliczania albo rejestrować wyjątki wynikłe ze zmian wprowadzanych przez inne wątków.

Dotyczy