Bonjour, je récupère des données sur mon port com (évenementiel), à chaque réception de données, je modifie 6 label.text.
J'ai essayé plusieurs solutions dont ceux cités sur le site de microsoft mais je ne trouve pas.

Comment faire correctement l'appel de thread dans ce code et où le faire ?

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
25
26
27
28
29
30
31
32
33
 
Private Property thread1 As Thread
 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
...
...
...
End Sub
 
Sub reception() Handles comPort.DataReceived
        Me.thread1 = New Thread(New ThreadStart(AddressOf Me.recu))
        Me.thread1.Start()
End Sub
 
Public Sub recu()
        Dim nBytes As Integer = comPort.BytesToRead()
        Dim comBuffer As Byte() = New Byte(nBytes - 1) {}
        Dim lu As Integer
        lu = comPort.Read(comBuffer, 0, nBytes)
        If lu = 46 Then
             Select Case (Hex(comBuffer(3)))
                    Case "0"
                        Label1.Text = Int(comBuffer(39))
                        Label2.Text = Int(comBuffer(35))
                    Case "1"
                        Label3.Text = Int(comBuffer(39))
                        Label4.Text = Int(comBuffer(35))
                    Case "2"
                        Label5.Text = Int(comBuffer(39))
                        Label6.Text = Int(comBuffer(35))
                End Select
        End If
End Sub
Ce code actuel me renvoi comme message
Opération inter-threads non valide : le contrôle 'Label1' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
Merci pour votre aide