Bonjour,
Je pensais pouvoir maitriser Vb et le côté multithreading mais ça fait deux jours que je n'arrive pas à résoudre un problème.J'utilise une liaison serie pour lire mes trames et après je dois les tracer sur une courbe chart.La récupération des données est bonne et même la tracée. Afin de donner plus de rapidité à mon programme, j'ai décidé d'utiliser le thread.Au début j'avais deux threads mais je l'ai réduit à un seul pour déterminer la source du problème mais hélas toujours la même.Il m'affiche ce message :L'exception InvalidOperationException n'a pas été gérée , La collection a été modifiée ; l'opération d'énumération peut ne pas s'exécuter.
J'ai mit ce paramètre à false pour permettre l'opération inter thread, côté variable. Me.CheckForIllegalCrossThreadCalls = False.
Je vous donne mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 While i < 10 fncanRead(canHandle, cmsg_Message, 1) ' MsgBox("Id: " & cmsg_Message.l_id) If cmsg_Message.l_id = "614" Then Hour = Microsoft.VisualBasic.DateAndTime.Hour(Now) Minutes = Microsoft.VisualBasic.DateAndTime.Minute(Now) Second = Microsoft.VisualBasic.DateAndTime.Second(Now) tableau111(i) = cmsg_Message.by_data_2 + cmsg_Message.by_data_3 * 256 tableau222(i) = cmsg_Message.by_data_4 + 256 * cmsg_Message.by_data_5 tableautempss(i) = Hour & ":" & Minutes & ":" & Second i += 1 End If If i = 10 Then PwmLiants = tableau111 VitPompLiants = tableau222 tempsss = tableautempss Tracer(1, PwmLiants, 2, tempsss) i=10 End If End While
Partager