LinkedList<T>.ICollection.SyncRoot Propriété

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. Dans l'implémentation par défaut de LinkedList<T>, cette propriété retourne toujours l'instance actuelle.In the default implementation of LinkedList<T>, this property always returns the current instance.

Implémente

Remarques

Les implémentations par défaut des System.Collections.Generic collections dans ne sont pas synchronisées.Default implementations of collections in System.Collections.Generic 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.

SyncRootretourne un objet qui peut être utilisé pour synchroniser l' ICollectionaccès à.SyncRoot returns an object that can be used to synchronize access to the ICollection. La synchronisation est effective uniquement si tous les threads verrouillent cet objet avant d’accéder à la collection.Synchronization is effective only if all threads lock this 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);  
}  

La récupération de la valeur de cette propriété est une opération O(1).Retrieving the value of this property is an O(1) operation.

S’applique à

Voir aussi