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:

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
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.

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.