Uploadfile asynch problem

  • VB.NET
  • .NET (FX) 4.0

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von VincentTB.

    Uploadfile asynch problem

    Hey
    Also ich hab ein problem- ich möchte eine datei uploaden und dabei den fortschritt in ner progressbar ausgeben.
    Funktioniert auch schon ganz gut

    VB.NET-Quellcode

    1. WithEvents Up As New Net.WebClient
    2. Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
    3. If Not TextBox4.Text = "" Then
    4. Up = New Net.WebClient
    5. Up.Proxy = Nothing
    6. Up.UploadFileAsync(New Uri("http://x.x.x.x/x/upload.php"), TextBox4.Text)
    7. End If
    8. End Sub
    9. Private Sub Up_UploadProgressChanged(sender As Object, e As System.Net.UploadProgressChangedEventArgs) Handles Up.UploadProgressChanged
    10. ProgressBar1.Value = e.ProgressPercentage
    11. End Sub
    12. Private Sub Up_UploadFileCompleted(sender As Object, e As System.Net.UploadFileCompletedEventArgs) Handles Up.UploadFileCompleted
    13. TextBox3.Text = "http://x.x.x.x/imgul/" & Encoding.UTF8.GetString(e.Result)
    14. End Sub


    So, nun möchte ich aber das ganze in eine einzige funktion schreiben, die immer wieder den downloadfortschritt in eine progressbar ausgibt, nur weis ich nicht wie und ob das geht :(
    Hoffe ihr könnt mir da helfen ;)
    Wer Rechtschreibfehler findet darf sie behalten :)
    Moin,

    das geht nur mit Lambdaausdrücken bzw. anonymen Funktionen.
    So irgendwie müsste es in VB.NET gehen:

    VB.NET-Quellcode

    1. ​Dim client As WebClient = New WebClient()
    2. client.UploadFileCompleted += Function(o, e)
    3. ' Hier Dein Code
    4. End Function


    Gib' Deinen Controls btw eindeutige Namen, damit Du sie identifizieren kannst.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Mit dieser Fehlerbeschreibung kann ich nichts anfangen, was geht denn nicht?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Wenn ich das richtig verstehe: Du möchtest diese Methode mehrere Male aufrufen? Da kann man schön Tasks benutzten:

    VB.NET-Quellcode

    1. Private Async Sub DownloadFile(url As String, path As String)
    2. Using client = New Net.WebClient() With {.Proxy = Nothing}
    3. AddHandler client.UploadProgressChanged, Sub(s, e)
    4. 'Progressbar Value setzten
    5. End Sub
    6. Await client.UploadFileTaskAsync(url, path)
    7. End Using
    8. End Sub
    Mfg
    Vincent