ReadOnlyCollection<T>.ICollection.SyncRoot ReadOnlyCollection<T>.ICollection.SyncRoot ReadOnlyCollection<T>.ICollection.SyncRoot Property

Definição

Obtém um objeto que pode ser usado para sincronizar o acesso ao ICollection.Gets an object that can be used to synchronize access to the ICollection.

property System::Object ^ System::Collections::ICollection::SyncRoot { System::Object ^ get(); };
object System.Collections.ICollection.SyncRoot { get; }
 ReadOnly Property SyncRoot As Object Implements ICollection.SyncRoot

Valor da propriedade

Um objeto que pode ser usado para sincronizar o acesso ao ICollection.An object that can be used to synchronize access to the ICollection. Na implementação padrão da ReadOnlyCollection<T>, essa propriedade sempre retorna a instância atual.In the default implementation of ReadOnlyCollection<T>, this property always returns the current instance.

Implementações

Comentários

As implementações padrão de coleções em System.Collections.Generic não são sincronizadas.Default implementations of collections in System.Collections.Generic are not synchronized.

A enumeração por meio de uma coleção não é um procedimento thread-safe intrínseco.Enumerating through a collection is intrinsically not a thread-safe procedure. Para garantir acesso thread-safe durante a enumeração, é possível bloquear a coleção durante toda a enumeração.To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. 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.To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.

SyncRootRetorna um objeto que pode ser usado para sincronizar o ICollectionacesso ao.SyncRoot returns an object that can be used to synchronize access to the ICollection. A sincronização entrará em vigor somente se todos os threads bloquearem esse objeto antes de acessar a coleção.Synchronization is effective only if all threads lock this object before accessing the collection. O código a seguir mostra o uso da SyncRoot propriedade para C#, Visual C++e Visual Basic.The following code shows the use of the SyncRoot property for C#, Visual C++, and Visual Basic.

ICollection ic = ...;  
lock (ic.SyncRoot) {  
   // Access the collection.  
}  
Dim ic As ICollection = ...  
SyncLock ic.SyncRoot  
   ' Access the collection.  
End SyncLock  
ICollection^ ic = ...;  
try {  
   Monitor::Enter(ic->SyncRoot);  
   // Access the collection.  
}  
finally {  
   Monitor::Exit(ic->SyncRoot);  
}  

A recuperação do valor dessa propriedade é uma operação O(1).Retrieving the value of this property is an O(1) operation.

Este membro é uma implementação do membro de interface explícita.This member is an explicit interface member implementation. Ele só pode ser usado quando a instância de ReadOnlyCollection<T> é convertida em uma interface de IDisposable.It can be used only when the ReadOnlyCollection<T> instance is cast to an IDisposable interface.

Aplica-se a

Veja também