Boucle For imbriquée dans Parallel for ou Parallel for each
Bonjour
J'ai une liste de mots listdico de 10 9 8 .....2 lettres
et une liste de combination listcomb de 10 9 8 ....2 lettres formé à partir de 10 choisis
avec chaque mot d'une longueur(t=10) lettres je verifie si dans la liste des combinations de 10 lettres j'ai une meme combination
si oui j'ajoute le mot à une liste
En utilisant une boucle for imbriquée dans un parallel for each ,j'obtiens des faux résultats :roll:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| 'list de mot de 10 9 8 ....2 lettres
private listdico As New List(Of List(Of String))
'list de combination de 10 9 8 7 6 ....2 lettres formé à partir de 10 choisis
private listcomb As New List(Of List(Of String))
Dim itemletters() As Char
Dim combletters() As Char
Do Until found Or t = 1
Parallel.ForEach(list1(t), Sub(st)
itemletters = st.ToCharArray
Array.Sort(itemletters)
For Each item In list2(t)
combletters = item.ToCharArray
Array.Sort(combletters)
If itemletters = combletters Then
SyncLock listsolution
listsolution.Add(st)
End SyncLock
End If
Next
End Sub)
If listsolution.Count > 0 Then
found = True
Else
t -= 1
End If
Loop |
le résultat dans listsolution j'obtiens de faux résultats
si je mets un point d'arret à la ligne listsolution.Add(st)
Code:
1 2 3 4 5
| If itemletters = combletters Then
SyncLock listsolution
listsolution.Add(st)
End SyncLock
End If |
Quand l'execution stop
je verifie la valeur de itemletters et combletters il sont différents :?
merci