Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês
Esta documentação foi arquivada e não está sendo atualizada.

Propriedade Array.SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso à Array.

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

public Object SyncRoot { get; }

Valor de propriedade

Tipo: System.Object
Um objeto que pode ser usado para sincronizar o acesso à Array.

Implementações

ICollection.SyncRoot

Esta propriedade implementa o System.Collections.ICollection interface.

Classes do .NET estrutura com base em Array fornecem sua próprias versão sincronizado do conjunto usando o SyncRoot propriedade.

Classes que usam arrays também podem implementar sua próprias sincronização usando o SyncRoot propriedade. O código de sincronização deve executar operações na SyncRoot da coleção, não diretamente na coleção. Isso garante o funcionamento das coleções são derivados de outros objetos.Especificamente, ele mantém uma sincronização adequada com outros segmentos que podem ser simultaneamente modificando a coleção.Observe que algumas implementações de SyncRoot pode retornar a Array propriamente dito.

Enumerando a classificação através de um conjunto não é intrinsecamente um procedimento seguro de segmento.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.

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

O exemplo de código a seguir mostra como bloquear uma matriz durante a enumeração de inteira usando o SyncRoot propriedade.

Array myArray = newint[] { 1, 2, 4 };
lock(myArray.SyncRoot) 
{
    foreach (Object item in myArray)
        Console.WriteLine(item);
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatível com: 3.5, 2.0, 1.0

XNA Framework

Compatível com: , 1.0
Mostrar: