[VB.NET] TextBox -- Opération Inter-Thread

Fermé
Orci76 Messages postés 92 Date d'inscription lundi 20 décembre 2010 Statut Membre Dernière intervention 21 avril 2015 - Modifié par Orci76 le 30/04/2012 à 06:16
Orci76 Messages postés 92 Date d'inscription lundi 20 décembre 2010 Statut Membre Dernière intervention 21 avril 2015 - 3 mai 2012 à 09:36
Bonjour,
Désolé de vous déranger, encore.
J'ai un petit problème: je 'sais' réaliser une opération cross-threads avec les Delegate, je sais réaliser une opération cross-class avec "Form1.[...]", cependant je n'arrive pas à modifier le texte d'une TextBox qui soit sur une classe distante, lancé par un thread, exemple:


Imports System.Threading  

Public Class Form1  
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
        Dim newTest As New Test  
        Dim newThread As Threading.Thread = New Thread(AddressOf newTest.start)  
        newThread.Start()  
    End Sub  
End Class  

Public Class Test  
    Delegate Sub SetTextCallback(ByVal text As String)  
    Private Sub Message(ByVal text As String)  
        If Form1.TextBox1.InvokeRequired Then  
            Dim d As New SetTextCallback(AddressOf Message)  
            Form1.Invoke(d, New Object() {text})  
            MsgBox("A")  
        Else  
            MsgBox("B")  
            Form1.TextBox1.Text &= vbCrLf & text  
        End If  
    End Sub  

    Public Sub start()  
        Message("Add This")  
    End Sub  
End Class


Comme vous pouvez le voir, j'ai lancé mon thread afin d'exécuter le Sub distant, start().
Cependant, la TextBox ne se remplit pas et seul la MessageBox "B" s'affiche, ce qui n'est pas le cas quand l'opération n'est pas inter-classe.

Ai-je commis un erreur? ou alors, ai-je simplement utilisé la mauvaise fonction?

Merci d'avance pour votre aide, encore désolé du dérangement.
A+.

1 réponse

Orci76 Messages postés 92 Date d'inscription lundi 20 décembre 2010 Statut Membre Dernière intervention 21 avril 2015 5
3 mai 2012 à 09:36
Up :(, personne n'a d'idées s'il vous plait?
0