J'ai rempli plusieurs listes <> avec des valeurs par défaut, les ai collées dans une structure puis j'ai passé la structure dans plusieurs threads. Chaque thread a une plage différente donc le thread 1 accèderait à la liste [0 à 199] le thread 2 accèderait à [200 - 400] etc. Aurais-je besoin d'un verrou? et quand en ai-je besoin? Je peux accéder à la liste avec mes multiples threads sans utiliser de verrou. Mais si mon thread principal veut lire les données de la liste (jamais écrire) ai-je besoin d'un verrou pour cela? Je suis sûr que je ne sais pas mais je voudrais demander avant la mise en œuvre.Ai-je besoin d'un verrou sur une liste? C#
-Edit-
Merci les gars, vous avez répondu à ma question. (J'accepterai un plus tard tant que quelqu'un ne réfutera pas les réponses actuelles)
Ou le nouveau et amélioré ReaderWriterLockSlim http://msdn.microsoft.com/en-us/library /system.threading.readerwriterlockslim.aspx –
Assurez-vous de lancer des tests si vous ne maintenez pas les verrous assez longtemps pour provoquer beaucoup de conflits, un verrou standard peut être plus rapide. Si vous n'obtenez pratiquement aucun conflit, un SpinLock (nouveau dans PFX/.NET 4.0) peut être une option encore meilleure dans le futur. –
@Jonathan, absolument. Sur des plates-formes massivement parallèles, les SpinLocks fonctionnent presque toujours mieux –