Dictionary<TKey,TValue>.ICollection.SyncRoot Propriedade

Definição

Obtém um objeto que pode ser usado para sincronizar o acesso ao ICollection.

property System::Object ^ System::Collections::ICollection::SyncRoot { System::Object ^ get(); };
object System.Collections.ICollection.SyncRoot { get; }
member this.System.Collections.ICollection.SyncRoot : obj
 ReadOnly Property SyncRoot As Object Implements ICollection.SyncRoot

Valor de Propriedade

Um objeto que pode ser usado para sincronizar o acesso ao ICollection.

Implementações

Observações

As implementações padrão das coleções no System.Collections.Generic namespace não estão sincronizadas.

Enumerar através de uma coleção não é, intrinsecamente, um procedimento seguro para threads. Para garantir a segurança da linha durante a enumeração, pode bloquear a coleção durante toda a enumeração. Para permitir que a coleção seja acedida por múltiplos threads para leitura e escrita, deve implementar a sua própria sincronização.

A SyncRoot propriedade devolve um objeto que pode ser usado para sincronizar o acesso ao ICollection. A sincronização só é eficaz se todos os threads bloquearem o objeto antes de aceder à coleção. O código seguinte mostra a utilização da SyncRoot propriedade.

ICollection ic = ...;
lock (ic.SyncRoot) {
   // Access the collection.
}
Dim ic As ICollection = ...
SyncLock ic.SyncRoot
   ' Access the collection.
End SyncLock

Obter o valor desta propriedade é uma operação O(1).

Aplica-se a

Ver também