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:
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é
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
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 !
Partager