EDIT: Hier ist die Lösung in dem Spoiler
Hallo Community,
Ich wahr gerade mal das neue Foren System am durchstöbern als ich über ein Tutorial gestolpert bin von dem Backgroundworker.
Nun habe ich dies mal nach geschrieben wie es ungefähr im Tutorial der Fall wahr.
Dies hat auch wunderschön funktioniert.
Da hatte ich die Idee das ich es ja nochmals mit einem DownloadFileAsync versuchen könnte.
Doch hier happert es gerade einwenig.
Ich der tb_files steht das hier:
Ich möchte eigentlich das es mir eine Datei nach der anderen von meinem Webspace herunterlädt und mit den Gesamt und auch den Momentan Fortschritt anzeigt ein den beiden ProgressBar's.
Die "1.txt" wird heruntergeladen und der Aktuelle Fortschritt wird mir richtig angezeigt. aber die 2 3 & 4.txt werden nicht heruntergeladen, ich weis nicht wie ich das machen muss das der BGW wartet bis die eine Datei fertig geladen wurde und dann die nächste nimmt.
Hallo Community,
Ich wahr gerade mal das neue Foren System am durchstöbern als ich über ein Tutorial gestolpert bin von dem Backgroundworker.
Nun habe ich dies mal nach geschrieben wie es ungefähr im Tutorial der Fall wahr.
Dies hat auch wunderschön funktioniert.
Da hatte ich die Idee das ich es ja nochmals mit einem DownloadFileAsync versuchen könnte.
Doch hier happert es gerade einwenig.
VB.NET-Quellcode
- Public Class Form1
- Dim WithEvents BGW As New System.ComponentModel.BackgroundWorker With {.WorkerReportsProgress = True, .WorkerSupportsCancellation = True}
- Dim WithEvents wc As New System.Net.WebClient
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim Zeilen() As String
- Zeilen = Split(tb_files.Text, vbCrLf)
- Dim lin As Integer = CInt(UBound(Zeilen))
- MsgBox(lin)
- If Not BGW.IsBusy Then
- Label1.Text = "Download wird gestartet"
- Button1.Enabled = False
- MsgBox(CInt(tb_files.Lines.Length))
- ProgressBar_Ges.Maximum = lin
- ProgressBar_Ges.Value = 0
- For Each line As String In tb_files.Lines
- If Not BGW.IsBusy Then
- BGW.RunWorkerAsync(line)
- End If
- Next
- End If
- End Sub
- Private Sub BGW_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BGW.DoWork
- wc.Proxy = Nothing
- wc.DownloadFileAsync(New Uri("http://scarecoding.ohost.de/asynctest/" + e.Argument), Application.StartupPath + "/" + e.Argument)
- End Sub
- Private Sub BGW_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BGW.ProgressChanged
- End Sub
- Private Sub BGW_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BGW.RunWorkerCompleted
- Label1.Text = "Download abgeschlossen"
- End Sub
- Private Sub wc_DownloadProgressChanged(sender As Object, e As Net.DownloadProgressChangedEventArgs) Handles wc.DownloadProgressChanged
- Invoke(Sub()
- ProgressBar_File.Maximum = CInt(e.TotalBytesToReceive)
- ProgressBar_File.Value = CInt(e.BytesReceived)
- End Sub)
- End Sub
- End Class
Ich der tb_files steht das hier:
Ich möchte eigentlich das es mir eine Datei nach der anderen von meinem Webspace herunterlädt und mit den Gesamt und auch den Momentan Fortschritt anzeigt ein den beiden ProgressBar's.
Die "1.txt" wird heruntergeladen und der Aktuelle Fortschritt wird mir richtig angezeigt. aber die 2 3 & 4.txt werden nicht heruntergeladen, ich weis nicht wie ich das machen muss das der BGW wartet bis die eine Datei fertig geladen wurde und dann die nächste nimmt.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „.Scare“ ()