El SynchronizedCollection<T>
classe a été introduite en .NET 2.0 pour fournir une classe de collection à sécurité thread. Pour ce faire, elle utilise le verrouillage, de sorte que vous disposez essentiellement d'un fichier List<T>
où chaque accès est enveloppé dans un lock
déclaration.
El System.Collections.Concurrent
est beaucoup plus récent. Il n'a été introduit qu'en .NET 4.0 et comprend un ensemble de choix considérablement amélioré et plus diversifié. Ces classes n'utilisent plus de verrous pour assurer la sécurité des threads, ce qui signifie qu'elles devraient mieux s'adapter à une situation où plusieurs threads accèdent simultanément à leurs données. Cependant, une classe implémentant la classe IList<T>
est notamment absente de ces options.
Ainsi, si vous visez la version 4.0 de .NET Framework, vous devez utiliser l'une des collections fournies par le module de gestion de l'environnement. System.Collections.Concurrent
dans la mesure du possible. Tout comme pour le choix entre les différents types de collections fournis dans la bibliothèque de l System.Collections.Generic
espace de noms Vous devrez choisir celui dont les caractéristiques correspondent le mieux à vos besoins spécifiques.
Si vous ciblez une ancienne version du .NET Framework ou si vous avez besoin d'une classe de collection qui implémente la fonction IList<T>
vous devrez opter pour l'interface SynchronizedCollection<T>
classe.
Cet article sur MSDN vaut également la peine d'être lu : Quand utiliser une collection sécurisée par des fils