Bonjour,

J'utilise un BackgroundWorker pour effectuer une tâche longue (une boucle for avec environ 60000 boucles représentant le nombre de ligne d'un document).
Voici mon code:
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
 
'évènement qui permet de déclencher le thread d'arrière plan
Private Sub lblMaJ_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblMaJ.Click
 
        gpbMAJEnCours.Location = New Point(605, 106)
        gpbMAJEnCours.Size = New Size(307, 281)
        gpbMAJEnCours.Visible = True
 
        BackgroundWorkerMaJ.RunWorkerAsync()
 
End Sub
 
Private Sub BackgroundWorkerMaJ_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorkerMaJ.DoWork
 
'Ici se trouve mes déclarations de variables utilisées pour ce 
'traitement et ma boucle for
End Sub
 
'évènement  déclenché une fois DoWork terminé
Private Sub BackgroundWorkerMaJ_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorkerMaJ.RunWorkerCompleted
 
        'compte le nbre d'éléments dans la listBox. Si vide message, sinon ouverture de la fenêtre frmModif
        If lstModif.Items.Count = 0 Then
 
            MessageBox.Show("Aucune donnée n'a été ajouté", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
        Else
 
            lblText.Text = "Liste des données qui ont été ajoutés dans la base de données:"
            gpbMAJEnCours.Size = New Size(641, 281)
 
        End If
 
    End Sub
Mon problème se situe au niveau de l'évènement DoWork. Le contenu ne s'exécute pas (la boucle for n'est pas effectuée). L'évènement RunWorkerCompleted est délenché tout de suite après l'évènement DoWork. J'ai regardé cette page http://glarde.developpez.com/dotnet/bgworker/vb/ mais je n'ai pas trouvé de réponse.
N'hésiter pas à poster si vous n'avez pas compris mon problème.
Merci d'avance pour votre aide.