Я пытаюсь загрузить несколько файлов на основе того, что пользователь выбрал в форме. У меня есть несколько флажков, поэтому, если пользователь выберет флажки 1,3,4, я бы хотел, чтобы веб-клиент загружал файлы 1.txt, 3.txt, 4.txt. Метод WebClient вызывает ошибку «WebClient не поддерживает одновременные операции ввода-вывода». ошибка.
If chk1.Checked Then
WC.DownloadFileAsync(New Uri("http://www.google.com/1.txt), Path.Combine(DataSource & strDirectory, "1.txt"))
End If
If chk2.Checked Then
WC.DownloadFileAsync(New Uri("http://www.google.com/2.txt), Path.Combine(DataSource & strDirectory, "2.txt"))
End If
If chk3.Checked Then
WC.DownloadFileAsync(New Uri("http://www.google.com/3.txt), Path.Combine(DataSource & strDirectory, "3.txt"))
End If
If chk4.Checked Then
WC.DownloadFileAsync(New Uri("http://www.google.com/4.txt), Path.Combine(DataSource & strDirectory, "4.txt"))
End If
У меня есть индикатор выполнения, который отслеживает загрузку, а также завершенное событие, вызывающее окно сообщений.
Private Sub WC_DownloadProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) Handles WC.DownloadProgressChanged
ProgressBar1.Value = e.ProgressPercentage
End Sub
Private Sub WC_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles WC.DownloadFileCompleted
MessageBox.Show("Download complete", "Download", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Как я могу запрограммировать это, чтобы загрузить все проверенные файлы? Я не возражаю, если пользователь увидит только этот индикатор выполнения, показывающий общее количество загруженных файлов или оставшееся время, но мне нужно что-то, чтобы показать, когда все загрузки завершены.
Какие-либо предложения?