Dictionary<TKey,TValue>.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.
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).