Hallo zusammen
Mit folgendem Code kann man Dateien runterladen und den Download pausieren und wieder fortsetzen(resume).
Der Code funktioniert bei einer langsamen Netzwerkverbindung problemlos.
Hat man jedoch Gigabit Netzwerk so hängt sich die Applikation auf. Das heisst der Server mit der Datei welche runtergeladen werden soll befindet sich im gleichen Netzwerk.
Was gibt es da für Lösungsansätze?
Danke für eure Antworten.
Gruss Martin
CodeTags gesetzt ~VaporiZed
Mit folgendem Code kann man Dateien runterladen und den Download pausieren und wieder fortsetzen(resume).
Der Code funktioniert bei einer langsamen Netzwerkverbindung problemlos.
Hat man jedoch Gigabit Netzwerk so hängt sich die Applikation auf. Das heisst der Server mit der Datei welche runtergeladen werden soll befindet sich im gleichen Netzwerk.
Was gibt es da für Lösungsansätze?
Danke für eure Antworten.
Gruss Martin
VB.NET-Quellcode
- Imports System
- Imports System.Collections.Generic
- Imports System.ComponentModel
- Imports System.Data
- Imports System.Drawing
- Imports System.Linq
- Imports System.Text
- Imports System.Threading.Tasks
- Imports System.Windows.Forms
- Imports AltoHttp
- Public Class Form1
- Private httpDownloader As HttpDownloader
- Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
- Dim DownloadFolder As String
- DownloadFolder = "c:\temp\" & "Download\"
- httpDownloader = New HttpDownloader(txtUrl.Text, $"{DownloadFolder}\\{System.IO.Path.GetFileName(txtUrl.Text)}")
- AddHandler httpDownloader.DownloadCompleted, AddressOf HttpDownloader_DownloadCompleted
- AddHandler httpDownloader.ProgressChanged, AddressOf HttpDownloader_ProgressChanged
- httpDownloader.Start()
- End Sub
- Private Sub HttpDownloader_ProgressChanged(ByVal sender As Object, ByVal e As AltoHttp.ProgressChangedEventArgs)
- progressBar.Value = CInt(e.Progress)
- lblPercent.Text = $"{e.Progress.ToString("0.00")} % "
- lblSpeed.Text = String.Format("{0} MB/s", (e.SpeedInBytes / 1024.0R / 1024.0R).ToString("0.00"))
- lblDownloaded.Text = String.Format("{0} MB", (httpDownloader.TotalBytesReceived / 1024.0R / 1024.0R).ToString("0.00"))
- lblStatus.Text = "Downloading..."
- End Sub
- Private Sub HttpDownloader_DownloadCompleted(ByVal sender As Object, ByVal e As EventArgs)
- Me.Invoke(CType(Function()
- lblStatus.Text = "Finished"
- lblPercent.Text = "100%"
- Return 0
- End Function, MethodInvoker))
- End Sub
- Private Sub btnPause_Click(sender As Object, e As EventArgs) Handles btnPause.Click
- If httpDownloader IsNot Nothing Then httpDownloader.Pause()
- End Sub
- Private Sub btnResume_Click(sender As Object, e As EventArgs) Handles btnResume.Click
- If httpDownloader IsNot Nothing Then httpDownloader.[Resume]()
- End Sub
- End Class
CodeTags gesetzt ~VaporiZed
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „VaporiZed“ ()