Problème d'affichage dans un textbox depuis l'ajout d'un thread
Bonjour,
Je développe avec visual studio 2010, framework 4.
J'ai un formulaire nommé "FrmMaj.vb" et une classe "FaireMaj.vb"
Ma classe effectue tout le traitement nécessaire et je veux écrire ce que j'ai mis à jour dans un textebox de mon formulaire. Cependant tout fonctionnait bien jusqu'à ce que j'ajoute un thread dans mon code. Depuis le traitement ce fait correctement, mais rien n'apparait dans mon textbox.
Dans FrmMaj.vb
Code:
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 34
| Partial Class FrmMaj
Delegate Sub dUpdateVersion()
Delegate Sub dUpdateComposante(ByVal arListComposante As ArrayList)
Private Sub btnMaj_Click(sender As System.Object, e As System.EventArgs) Handles btnMaj.Click
Dim t As New Thread(AddressOf Exec)
t.IsBackground = True
t.Start()
End Sub
Private Sub Exec()
Dim strPath As String
Dim arListComposante As ArrayList = New ArrayList
faireMaj = New FaireMaj
cbxVersion.Invoke(New dUpdateVersion(AddressOf UpdateVersion))
lbxComposante.Invoke(New dUpdateComposante(AddressOf UpdateComposante), arListComposante)
faireMaj.Exec(arListComposante, strVersionMajeur, strPath)
End Sub
Private Sub UpdateVersion()
strVersionMajeur = cbxVersion.Text
End Sub
Private Sub UpdateComposante(ByVal arListComposante As ArrayList)
For Each composante As Object In lbxComposante.SelectedItems
arListComposante.Add(composante)
Next
End Sub
End Class |
Et dans FaireMaj.vb
Code:
1 2 3 4 5 6 7 8 9
| Public Class FaireMaj
Public Sub Exec(ByVal arListComposante As ArrayList, ByVal strVersionMajeur As String, Optional strPath As String = PATH_XML)
FrmMaj.tbxSortie.AppendText("Traitement en cours" & vbCrLf) 'C'est ici que rien ne s'affiche
'...
'...
'...
End Sub
End Class |
Quelqu'un pourrait m'aider svp?
Merci!