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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!