vb.net多线程下载
作者:admin 日期:2023-06-22
Imports System.IO
Imports System.Net
Imports System.Threading
Public Class Form1
Private downloadThreads As List(Of Thread) = New List(Of Thread)()
Private downloadUrls As List(Of String) = New List(Of String)()
Private proxy As WebProxy = New WebProxy("http://proxy.example.com:8080")
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 添加需要下载的网址
downloadUrls.Add("http://example.com/file1.jpg")
downloadUrls.Add("http://example.com/file2.jpg")
downloadUrls.Add("http://example.com/file3.jpg")
downloadUrls.Add("http://example.com/file4.jpg")
downloadUrls.Add("http://example.com/file5.jpg")
End Sub
Private Sub btnDownload_Click(sender As Object, e As EventArgs) Handles btnDownload.Click
' 创建多个线程进行下载
For i As Integer = 0 To downloadUrls.Count - 1
Dim t As Thread = New Thread(New ParameterizedThreadStart(AddressOf DownloadFile))
downloadThreads.Add(t)
t.Start(downloadUrls(i))
Next
End Sub
Private Sub DownloadFile(url As Object)
Dim remoteUri As String = CStr(url)
Dim fileName As String = Path.GetFileName(remoteUri)
Dim myWebClient As WebClient = New WebClient()
myWebClient.Proxy = proxy
AddHandler myWebClient.DownloadFileCompleted, AddressOf DownloadFileCompleted
myWebClient.DownloadFileAsync(New Uri(remoteUri), fileName)
End Sub
Private Sub DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs)
If e.Error IsNot Nothing Then
' 下载失败
MessageBox.Show("下载失败:" & e.Error.Message)
Else
' 下载成功
MessageBox.Show("下载完成!")
End If
End Sub
End Class
Imports System.IO
Imports System.Net
Imports System.Threading
Public Class Form1
Private downloadThreads As List(Of Thread) = New List(Of Thread)()
Private downloadUrls As List(Of String) = New List(Of String)()
Private proxy As WebProxy = New WebProxy("http://proxy.example.com:8080")
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 添加需要下载的网址
downloadUrls.Add("http://example.com/file1.jpg")
downloadUrls.Add("http://example.com/file2.jpg")
downloadUrls.Add("http://example.com/file3.jpg")
downloadUrls.Add("http://example.com/file4.jpg")
downloadUrls.Add("http://example.com/file5.jpg")
End Sub
Private Sub btnDownload_Click(sender As Object, e As EventArgs) Handles btnDownload.Click
' 创建多个线程进行下载
For i As Integer = 0 To downloadUrls.Count - 1
Dim t As Thread = New Thread(New ParameterizedThreadStart(AddressOf DownloadFile))
downloadThreads.Add(t)
t.Start(downloadUrls(i))
Next
End Sub
Private Sub DownloadFile(url As Object)
Dim remoteUri As String = CStr(url)
Dim fileName As String = Path.GetFileName(remoteUri)
Dim myWebClient As WebClient = New WebClient()
myWebClient.Proxy = proxy
AddHandler myWebClient.DownloadFileCompleted, AddressOf DownloadFileCompleted
myWebClient.DownloadFileAsync(New Uri(remoteUri), fileName)
End Sub
Private Sub DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs)
If e.Error IsNot Nothing Then
' 下载失败
MessageBox.Show("下载失败:" & e.Error.Message)
Else
' 下载成功
MessageBox.Show("下载完成!")
End If
End Sub
End Class






广告位