Bonjour à tous,

je développe actuellement un module de compression de photos en multithreading qui fonctionne plutôt bien,

cependant j'ai décidé d'y ajouter une barre de progression pour éviter que les utilisateurs pensent que le logiciel a planté et qu'ils ferment le programme comme des barbares,

J'ai donc créé une delegate sub et ajouter le Invoke qui va bien comme suit:

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
 
 Delegate Sub AvancementCallBack(Nombre As Integer)
 
 Sub MonTimerTick(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Montimer.Elapsed
 
        Avancement(Nb)
 
 End Sub
 
Private Sub Avancement(Nombre As Integer)
 
            If PB_avancement.InvokeRequired Then
                Dim d As New AvancementCallBack(AddressOf Avancement)
                PB_avancement.Invoke(d, New Object() {Nombre})
            Else
                PB_avancement.Value = Nombre
            End If
End Sub
PB_Avancement étant ma progress bar et Nombre, le nombre de photo actuellement traité, le tout imbriqué dans un timer qui commence avant la compression et se termine après, la variable nb est une variable globale retournant au temps t le nombre de photo traité

Aucun message d'erreur ni rien dans le catch, quand j'execute en points d'arrêt, il va bien jusqu'au invoke mais ne repasse pas dans la procédure...

je suis complètement perdu ! HELP !