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

Définition

Obtient un objet qui peut être utilisé pour synchroniser l’accès à ICollection.

C#
object System.Collections.ICollection.SyncRoot { get; }

Valeur de propriété

Objet qui peut être utilisé pour synchroniser l'accès à ICollection. Dans l'implémentation par défaut de Collection<T>, cette propriété retourne toujours l'instance actuelle.

Implémente

Remarques

Les implémentations par défaut des collections dans System.Collections.Generic ne sont pas synchronisées.

L'énumération d'une collection n'est intrinsèquement pas une procédure thread-safe. Pour garantir la sécurité des threads pendant l'énumération, vous pouvez verrouiller la collection tout au long de cette opération. Pour permettre à plusieurs threads d’accéder en lecture et en écriture à la collection, vous devez implémenter votre propre synchronisation.

SyncRootretourne un objet qui peut être utilisé pour synchroniser l’accès à .ICollection La synchronisation n’est effective que si tous les threads verrouillent cet objet avant d’accéder à la collection. Le code suivant montre l’utilisation de la SyncRoot propriété pour C#, C++ et Visual Basic.

C#
ICollection ic = ...;
lock (ic.SyncRoot) {
   // Access the collection.
}

La récupération de la valeur de cette propriété est une opération O(1).

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Voir aussi