Я реализую приложение формы Windows, в котором мы берем URL-адрес в качестве ввода из многострочного текстового поля и с помощью цикла загружаем файлы. В функции загрузки я реализую веб-клиент для загрузки.
Использование цикла создает слишком много запросов Webclient. Теперь, поскольку у меня есть один progressBar, это приводит к колебаниям индикатора выполнения. Вот изображение программы.
Я ищу какой-то метод, чтобы загружался только один файл, а другой на некоторое время приостанавливался. Это заставит прогрессбар работать только для одного файла.
private void Download_Click(object sender, EventArgs e)
{
label1.Text = "Starting Download ... Please Wait ...";
string[] sep = new string[] { "\r\n" };
string[] lines = textBox1.Text.Split(sep, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < lines.Length; i++)
{
download(lines[i]);
}
}
private void download(string song)
{
string name = song;
song = query(song);
using (webclient = new WebClient())
{
// ...statements
using (client = new WebClient())
{
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
client.DownloadFileAsync(new Uri(DOWN_URL + download_url), @dest + "\\" + name + ".mp3");
}
}
}
private void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
count++;
label1.Text = "Downloaded " + count.ToString() + " song(s)";
}
private void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
label1.Text = "Downloading";
}
DownloadProgressChanged
для увеличения уже загруженных байтов - person Rubens Farias   schedule 16.06.2016DownloadFile
вместо асинхронной версии? - person Rubens Farias   schedule 16.06.2016