none
erreur class AsyncCompletedEventArgs RRS feed

  • Question

  • Bonjour,

    je suis entrains crée une classe Filedownloader, j'arrive pas a récupérer événement AsyncCompletedEventArgs.

     

    Public Delegate Sub _delDownloadCompleted(ByVal thread As FileDownloader, ByVal isSuccess As Boolean, sender As Object, sync As AsyncCompletedEventArgs)

    Public ReadOnly [error] As Exception Public ReadOnly cancelled As Boolean Public ReadOnly userState As Object Public str As New AsyncCompletedEventArgs([error], cancelled, userState) Public Sub New(ByVal erreur As Exception, annuler As Boolean, ByVal result As String) Me.error = erreur Me.cancelled = annuler Me.userState = result End Sub Private Sub wc_DownloadFileCompleted(sender As Object, e As AsyncCompletedEventArgs) RaiseEvent DownloadCompleted(Me, _IsDownloadSuccessful, sender, e) _IsDownloadSuccessful = True _IsDownloading = False End Sub ....etc Try Dim destFileName As String = _DirectoryPath & "\" & FileName If File.Exists(destFileName) = False Then Using wc As New WebClient wc.Headers.Add("User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0") wc.Headers.Add("Referer", "https://www.google.fr/") AddHandler wc.DownloadProgressChanged, AddressOf wc_DownloadProgressChanged AddHandler wc.DownloadFileCompleted, AddressOf wc_DownloadFileCompleted wc.DownloadFileAsync(New Uri(_DocumentUrl), destFileName) End Using End If _IsDownloadSuccessful = True _IsDownloading = False RaiseEvent DownloadCompleted(Me, _IsDownloadSuccessful, Me, str) Catch ex As Exception _IsDownloadSuccessful = False End Try

    dans form1 :

    ...etc
    AddHandler download.DownloadCompleted, New FileDownloader._delDownloadCompleted(AddressOf download_DownloadCompleted)
    etc
    
    Private Sub download_DownloadCompleted(ByVal thread As FileDownloader, ByVal isSuccess As Boolean, ByVal sender As Object, ByVal sync As AsyncCompletedEventArgs)
            If sync.Cancelled = True Then
                Me.SetStatus("Téléchargement annulé...", Color.Red, thread)
            ElseIf sync.Error IsNot Nothing Then
                Me.SetStatus("Erreur de Téléchargement...", Color.Red, thread)
            ElseIf sync.UserState IsNot Nothing Then
                Me.SetStatus("téléchargement terminé...", Color.BlueViolet, thread)
            End If

    avez-vous une solution pour recuperer evenement : New AsyncCompletedEventArgs(???,???,???) car ça ce bloque a 99%?

    Merci de votre compréhension.

    jeudi 11 mars 2021 16:58

Réponses

  • Bonjour,

    Essayez de vérifier si le téléchargement a réussi lorsque l'événement DownloadFileCompleted est déclenché (au lieu de RaiseEvent DownloadCompleted...) : 
    Private Sub wc_DownloadFileCompleted(sender As Object, e As AsyncCompletedEventArgs)
    
     If e.Cancelled = True Then
                Me.SetStatus("Téléchargement annulé...", Color.Red, thread)
            ElseIf e.Error IsNot Nothing Then
                Me.SetStatus("Erreur de Téléchargement...", Color.Red, thread)
            ElseIf e.UserState IsNot Nothing Then
                Me.SetStatus("téléchargement terminé...", Color.BlueViolet, thread)
     End If
    
    Dans la documentation pour WebClient.DownloadFileCompleted Event il y a un exemple simplifié qui peut être utile.

    Obtenez-vous une erreur lors du débogage?

    Cordialement,
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    • Marqué comme réponse zorro591 samedi 13 mars 2021 10:24
    vendredi 12 mars 2021 10:44
    Modérateur