LinkedList<T>.ICollection.SyncRoot Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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).