Bonjour,
Je cherche à faire évoluer une ProgressBar lors du téléchargement d'un fichier.
Le problème, c'est que je n'ai pas la main sur le téléchargement (je télécharge sur un serveur SFTP en utilisant la librairie SharpSSH).
Pour faire évoluer ma progressBar, je connais la taille totale du fichier et le nombre d'octet déjà transférer. J'utilise un thread qui toute les demi secondes fait évoluer ma progressBar. Le problème c'est que je ne peux pas modifier ma progressBar directement dans ce thread.
Voilà mon code :
Bien sur ça ne fonctionne pas!
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 public class InterfacePrincipale : System.Windows.Forms.Form { ... private void BVerifierDonneesFTP_Click(object sender, EventArgs e) { Thread lThreadTelechargement = null; //On lance la vérification this.LabelVerification.Text="Téléchargement de l'archive ZIP"; this.LabelVerification.ForeColor = Color.Blue; this.BVerifierDonneesFTP.Text = "Annuler"; lThreadTelechargement = new Thread(new ThreadStart(this.progressBarEvolution)); lThreadTelechargement.Start(); //Méthode téléchargant le fichier sur le serveur SFTP this.lVerificationDonneesFTP.telechargement(); lThreadTelechargement.Abort(); ... } ... private void progressBarEvolution() { Thread.Sleep(500); while (this.lVerificationDonneesFTP.enTelechargement) { Thread.Sleep(500); this.BeginInvoke((MethodInvoker)delegate { this.PBTempsVerification.Value = (int)((this.lVerificationDonneesFTP.getQuantiteTelecharge() / this.lVerificationDonneesFTP.getTailleTotale()) * 100); }); } }
Je pense que le problème vient de l'utilisation du "MethodeInvoker". J'ai saisie l'utilité mais pas vraiment le fonctionnement.
Si quelqu'un pouvait m'éclairer un peu ça serait sympa.
Merci d'avance
Cordialement,
Denethor9
Partager