Jusqu’à maintenant, les ressources utilisées par nos différents threads étaient propres à chaque thread et ne risquaient a priori pas d’être utilisées par d’autres. Mais quand on travaille dans un environnement « multithreading », une ressource donnée peut potentiellement être utilisée par différents threads. Il s’agit donc de travailler avec des structures « thread-safe » c’est-à-dire à même d’accepter des accès simultanés à ses données.
Les collections de ce type qui doivent être connues pour la certification 70-483 sont :
1.
BlockingCollection<T> ;
2.
ConcurrentBag<T> ;
3.
ConcurrentDictionary<T> ;
4.
ConcurrentQueue<T> ;
5.
ConcurrentStack<T>.
La BlockingCollection est une collection qui va bloquer les accès des éléments déjà utilisés. Ainsi, un thread 1 modifie un élément : le thread 2 qui veut le supprimer attend que l’élément ne soit plus bloqué par le thread 1.
La classe est stockée dans l’espace de noms System.Collections.Concurrent.
Elle a la définition suivante :
[ComVisible(false)] [DebuggerDisplay("Count = {Count}, Type = {m_collection}")] [DebuggerTypeProxy(typeof(Concurrent.SystemThreadingCollections_ ...
Abonnement
tous les livres et vidéos ENI en illimité sans engagement
du livre imprimé ou du livre numérique