1

4 つの Web クライアントを使用して 4 つのファイルを同時にダウンロードしようとしています。4 つのファイルすべてを同時にダウンロードしますが、最初の 2 つのプログレス バーは正常に動作し、3 番目のプログレス バーは 1 番目のプログレス バーと正確に移動し、4 番目のプログレス バーは 2 番目のプログレス バーと正確に移動します。これが問題に関連する私のコードです。

Public WithEvents downloadFile1 As WebClient
Public WithEvents downloadFile2 As WebClient
Public WithEvents downloadFile3 As WebClient
Public WithEvents downloadFile4 As WebClient

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    System.Net.ServicePointManager.DefaultConnectionLimit = 10
End Sub


Private Sub startDownloadFile1()

    downloadFile1 = New WebClient
    Dim targetURL As String = lstURLs.Items.Item(0)
    Dim destinationPath As String = "e:\Downloads\0.jpg"
    downloadFile1.DownloadFileAsync(New Uri(targetURL), destinationPath)

End Sub

Private Sub startDownloadFile2()

    downloadFile2 = New WebClient
    Dim targetURL As String = lstURLs.Items.Item(1)
    Dim destinationPath As String = "e:\Downloads\1.jpg"
    downloadFile2.DownloadFileAsync(New Uri(targetURL), destinationPath)

End Sub

startDownloadFile3() および startDownloadFile() についても同様です。

Private Sub btnDownload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDownload.Click
    startDownloadFile1()
    startDownloadFile2()
    startDownloadFile3()
    startDownloadFile4()
End Sub

Private Sub downloadFile1_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles downloadFile1.DownloadProgressChanged

    pb1.Value = e.ProgressPercentage

End Sub

Private Sub downloadFile2_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles downloadFile2.DownloadProgressChanged

    pb2.Value = e.ProgressPercentage

End Sub

Private Sub downloadFile3_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles downloadFile1.DownloadProgressChanged

    pb3.Value = e.ProgressPercentage

End Sub

Private Sub downloadFile4_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles downloadFile2.DownloadProgressChanged

    pb4.Value = e.ProgressPercentage

End Sub
4

1 に答える 1