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
Et dans FaireMaj.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
Quelqu'un pourrait m'aider svp?
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
Merci!
Partager