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