Bonjour,
j'essaye de lire une donnée dans un generic.dictionary qui se met a jour en temps réel;Du coup j'ai un problème si la collection se modifie.
Comment faire pour eviter l'exception?
Bonjour,
j'essaye de lire une donnée dans un generic.dictionary qui se met a jour en temps réel;Du coup j'ai un problème si la collection se modifie.
Comment faire pour eviter l'exception?
Quelle est l'exception ? Peux tu poster la partie du code incriminée ?
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
quotes est un generic.dictionary (l'hashtable est necessaire ,je ne veux pas de list) qui peut changer pendant l'iteration.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 For Each quote As mnQuote In Quotes.Values Dim flag As Integer If flag = Target Then Currency.Id = quote.MnInstrumentid Exit For End If flag += 1 Next
l'exception est que la collection a changé pendant le parsing...
Tu peux verrouiller la collection pendant le parcours avec l'instruction 'lock'.
Je te laisse consulter la documentation pour de plus amples informations concernant 'lock'.
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
J'ai deja jeté un coup d'oeil ,et a priori il faut developper son propre mecanisme.....
Pourquoi ne pas créer une nouvelle instance de Dictionary, à partir de l'original, et travailler sur cette nouvelle instance qui ne sera donc pas modifiée par d'autres threads.
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ' Dictionnaire source Dim dico As Dictionary<int, int> = New Dictionary<int,int>() ' On crée une copie de notre dictionnaire. Dim newDico As Dictionary<int, int> = New Dictionary<int,int>(dico)
Partager