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


ListDictionary.IsSynchronized Свойство

Определение

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

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

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

Это свойство всегда возвращается false.

Реализации

Примеры

В следующем примере кода показано, как заблокировать коллекцию с помощью SyncRoot всего перечисления.

ListDictionary myCollection = new ListDictionary();
lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As New ListDictionary()
SyncLock myCollection.SyncRoot
    For Each item as Object In myCollection
        ' Insert your code here.
    Next item
End SyncLock

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

Комментарии

ListDictionary IsSynchronized реализует свойство, так как оно требуется интерфейсомSystem.Collections.ICollection.

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

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

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

См. также раздел