Bonjour,
Je programme en VB.NET avec Visual studio.
Dans mon code j'ai un thread qui gère la lecture d'un datagramme, il est appelé sur Timer comme le montre le code ci-dessus:
J'arrive bien à récupérer le message dans la variable message, en débogage elle contient bien une valeur.Code:public message As String = "" Private Sub Timer_Tick(sender As Object, e As EventArgs) Handles Timer.Tick Dim start As Thread = New Thread(AddressOf Receiver) start.IsBackground = True start.Start() End Sub Public Function Receiver() Dim endPoint As IPEndPoint = New IPEndPoint(IPAddress.Parse("132.1.32.215"), port) Dim data() As Byte Try data = receivingClient.Receive(endPoint) message = Encoding.ASCII.GetString(data).ToString SetText(message) Catch ex As Exception MsgBox(ex.ToString) End Try Return True End Function
J'essaie ensuite de l'afficher sur ma Form (form1) par l'intermédiaire du sub "SetText", j'ai récupéré un code de Microsoft :
Seulement, le label1 ne change pas de valeur, comme si l'affichage n'était pas rafraichit.Code:Delegate Sub SetTextCallback([text] As String) Private Sub SetText(ByVal [text] As String) If Me.Label1.InvokeRequired Then Dim d As New SetTextCallback(AddressOf SetText) Me.Invoke(d, New Object() {[text]}) Else Me.Label1.Text = [text] End If End Sub
Merci de votre aide,
-----