SortedDictionary<TKey,TValue>.ValueCollection.ICollection.SyncRoot Propriedade

Definição

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

C#
object System.Collections.ICollection.SyncRoot { get; }

Valor da propriedade

Um objeto que pode ser usado para sincronizar o acesso à ICollection. Na implementação padrão da SortedDictionary<TKey,TValue>.ValueCollection, essa propriedade sempre retorna a instância atual.

Implementações

Comentários

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

A enumeração por meio de uma coleção não é um procedimento thread-safe intrínseco. Para garantir acesso thread-safe durante a enumeração, é possível bloquear a coleção durante toda a enumeração. Para permitir que a coleção seja acessada por vários threads para leitura e gravação, você deve implementar sua própria sincronização.

A SyncRoot propriedade retorna um objeto que pode ser usado para sincronizar o ICollectionacesso ao . A sincronização só será efetiva se todos os threads bloquearem o objeto antes de acessar a coleção. O código a seguir mostra o uso da SyncRoot propriedade para C#, C++e Visual Basic.

C#
ICollection ic = ...;  
lock (ic.SyncRoot)   
{  
    // Access the collection.  
}  

A obtenção do valor dessa propriedade é uma operação O(1).

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Confira também