Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Dictionary<TKey, TValue>.ICollection.SyncRoot, propriété

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

Espace de noms :  System.Collections.Generic
Assembly :  mscorlib (dans mscorlib.dll)

Object ICollection.SyncRoot { get; }

Valeur de propriété

Type : System.Object
Objet qui peut être utilisé pour synchroniser l'accès à ICollection.

Implémentations

ICollection.SyncRoot

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 pendant toute la durée 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 propriété SyncRoot retourne un objet pouvant être utilisé pour synchroniser l'accès à ICollection. 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 propriété SyncRoot pour C#, C++ et Visual Basic.

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

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

.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft