LinkedList<T>.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. Na implementação padrão de LinkedList<T>, esta propriedade devolve sempre a instância atual.

Implementações

Observações

As implementações padrão das coleções em System.Collections.Generic 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.

SyncRoot devolve um objeto que pode ser usado para sincronizar o acesso ao ICollection. A sincronização só é eficaz se todos os threads bloquearem este 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

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

Aplica-se a

Ver também