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

Implémente

Remarques

Les implémentations par défaut de collections dans l'espace de noms 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.

La SyncRoot propriété retourne un objet qui peut être utilisé pour synchroniser l’accès ICollectionau . La synchronisation est effective uniquement si tous les threads verrouillent l’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.
}

L’obtention 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.6, 2.0, 2.1
UWP 10.0

Voir aussi