Поделиться через


StringDictionary.IsSynchronized Свойство

Определение

Возвращает значение, указывающее, синхронизирован ли доступ к StringDictionary синхронизированному (потокобезопасно).

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

Значение свойства

Значение />, если доступ к синхронизирован (потокобезопасный); в противном случае .

Примеры

В следующем примере кода показано, как заблокировать коллекцию с помощью 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

Получение значения этого свойства является операцией O(1).

Комментарии

Экземпляр StringDictionary не синхронизирован. Производные классы могут предоставлять синхронизированную версию StringDictionary свойства.SyncRoot

Перечисление через коллекцию по сути не является потокобезопасной процедурой. Даже если коллекция синхронизирована, другие потоки по-прежнему могут изменять коллекцию, что приводит к возникновению исключения перечислителем. Чтобы гарантировать безопасность потоков во время перечисления, можно заблокировать коллекцию во время всего перечисления или поймать исключения, полученные из изменений, внесенных другими потоками.

Применяется к