Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Propriedade ArrayList.SyncRoot

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

Namespace:  System.Collections
Assembly:  mscorlib (em mscorlib.dll)

public virtual Object SyncRoot { get; }

Valor de propriedade

Tipo: System.Object
Um objeto que pode ser usado para sincronizar o acesso ao ArrayList.

Implementações

ICollection.SyncRoot

Para criar uma versão sincronizada de ArrayList, use o método de Synchronized . Porém, as classes derivadas podem fornecer sua própria versão sincronizada de ArrayList usando a propriedade de SyncRoot . O código de sincronização deve executar operações em SyncRoot de ArrayList, não diretamente em ArrayList. Isso garante a operação apropriada das coleções que são derivadas de outros objetos. Especificamente, o mantém a sincronização apropriada com outros threads que podem simultaneamente modificar o objeto de ArrayList .

A enumeração por meio de uma coleção não é um procedimento thread-safe intrínseco. Mesmo quando uma coleção é sincronizada, outros Threads poderá ainda modificar a coleção, que faz com que o enumerador para gerar uma exceção. Para garantir segurança de segmentos durante enumeração, você pode bloquear a coleção durante a enumeração inteira ou pegar as exceções resultantes de alterações feitas por outros segmentos.

O exemplo de código a seguir mostra como bloquear a coleção usando o SyncRoot durante toda a enumeração.


ArrayList myCollection = new ArrayList();

lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}


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

.NET Framework

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft