Bonjour à tous,
Je viens vers vous après plusieurs recherches sur le net sans succès ^^.
Alors je vous explique mon problème, Je suis en train de créer un launcher qui doit télécharger plusieurs fichiers .zip qui sont ensuite décompressé. De ce coté il n'y a aucun problème, mais ce que je voudrait c'est de faire une barre de progression qui affiche ou en est le téléchargement. J'ai donc suivis ce tutoriel: http://www.dreamincode.net/forums/to...h-progressbar/ , ce qui donne ceci:
j'ai rajouter une boucle pour attendre la fin du téléchargement avant de continuer, et c'est cette boucle qui bloque la fonction client_ProgressChanged.
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 Private Sub client_ProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) Dim bytesIn As Double = Double.Parse(e.BytesReceived.ToString()) Dim totalBytes As Double = Double.Parse(e.TotalBytesToReceive.ToString()) Dim percentage As Double = bytesIn / totalBytes * 100 pboProgress.Value = Int32.Parse(Math.Truncate(percentage).ToString()) End Sub Private Sub client_DownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) MessageBox.Show("Download Complete") Button2.Text = "Start Download" Button2.Enabled = True End Sub Private Sub downloadAsyn(ByVal fichier As String) Dim client As WebClient = New WebClient AddHandler client.DownloadProgressChanged, AddressOf client_ProgressChanged AddHandler client.DownloadFileCompleted, AddressOf client_DownloadCompleted client.DownloadFileAsync(New Uri("url"), "destination") 'Cette boucle permet d'attendre la fin du téléchargement avant de continuer While client.IsBusy System.Threading.Thread.Sleep(1) End While End Sub
Je voudrait donc savoir comment attendre la fin du téléchargement sans cette boucle ou alors récupérer la taille de donné restante, pour la barre de progression, directement dans cette boucle.
Merci d'avance pour votre aide, je reste à votre disposition si vous avez besoin de plus d'informations.
Partager