Dictionary<TKey,TValue>.ICollection.SyncRoot Dictionary<TKey,TValue>.ICollection.SyncRoot Dictionary<TKey,TValue>.ICollection.SyncRoot Property

Définition

Obtient un objet qui peut être utilisé pour synchroniser l'accès à 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

Valeur de propriété

Objet qui peut être utilisé pour synchroniser l'accès à ICollection.An object that can be used to synchronize access to the ICollection.

Implémente

Remarques

Les implémentations par défaut de collections dans l’espace de noms System.Collections.Generic ne sont pas synchronisées.Default implementations of collections in the System.Collections.Generic namespace are not synchronized.

L'énumération d'une collection n'est intrinsèquement pas une procédure thread-safe.Enumerating through a collection is intrinsically not a thread-safe procedure. Pour garantir la sécurité des threads pendant l'énumération, vous pouvez verrouiller la collection tout au long de cette opération.To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. Pour permettre à plusieurs threads d’accéder en lecture et en écriture à la collection, vous devez implémenter votre propre synchronisation.To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.

La SyncRoot propriété retourne un objet qui peut être utilisé pour synchroniser l' ICollectionaccès à.The SyncRoot property returns an object that can be used to synchronize access to the ICollection. La synchronisation est effective uniquement si tous les threads verrouillent l’objet avant d’accéder à la collection.Synchronization is effective only if all threads lock the object before accessing the collection. Le code suivant illustre l’utilisation de la SyncRoot propriété pour C#, C++et 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);  
}  

L’obtention de la valeur de cette propriété est une opération O (1).Getting the value of this property is an O(1) operation.

S’applique à

Voir aussi