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

Implementações

Comentários

As implementações padrão de coleções no namespace System.Collections.Generic não são sincronizadas.Default implementations of collections in the System.Collections.Generic namespace 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.

O SyncRoot propriedade retorna um objeto que pode ser usado para sincronizar o acesso para o ICollection.The SyncRoot property returns an object that can be used to synchronize access to the ICollection. A sincronização é eficaz somente se todos os threads de bloquear o objeto antes de acessar a coleção.Synchronization is effective only if all threads lock the object before accessing the collection. O código a seguir mostra o uso do SyncRoot propriedade para c#, C++ e Visual Basic.The following code shows the use of the SyncRoot property for C#, 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 obtenção do valor dessa propriedade é uma operação O(1).Getting the value of this property is an O(1) operation.

Aplica-se a

Veja também