sina_rzv2
جمعه 06 شهریور 1394, 03:26 صبح
سلام من 10 دانلود را در یک آرایه قرار دادم و میخوام برای دانلود این ها از 2 progressbar استفاده کنم که اولی برای دانلود هر فایل استفاده بشه و دومی برای کل دانلود ها.
برای اولی از کد زیر استفاده کردم که به درستی کار میکنه
WebClient webClient;
try
{
int i = 1;
foreach (var s in newspaper)
{
webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChange );
webClient.DownloadFileAsync(new Uri(s.ToString()), textBoxDir.Text + "/" + i.ToString() + ".jpg");
label3.Text = "تعداد فایل دانلودی: " + i;
i++;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
مشکل اینجاست که اول کدهای درون حلقه اجرا میشه و بعد شروع به دانلود میکنه. برای همین label3 درون کد به سرعت پر میشه و بعد دانلود فایل ها آغاز می شود.
چطور میشه کاری کرد که بعد از اجرای حلقه برای بار اول وقتی دانلود فایل اول تموم شد حلقه تکرار بشه؟ و چطور میتونم progressbar واسه کل دانلود ها بذارم؟
اگه نمونه ای هم از این کار بهم معرفی کنید ممنون میشم.
با تشکر
برای اولی از کد زیر استفاده کردم که به درستی کار میکنه
WebClient webClient;
try
{
int i = 1;
foreach (var s in newspaper)
{
webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChange );
webClient.DownloadFileAsync(new Uri(s.ToString()), textBoxDir.Text + "/" + i.ToString() + ".jpg");
label3.Text = "تعداد فایل دانلودی: " + i;
i++;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
مشکل اینجاست که اول کدهای درون حلقه اجرا میشه و بعد شروع به دانلود میکنه. برای همین label3 درون کد به سرعت پر میشه و بعد دانلود فایل ها آغاز می شود.
چطور میشه کاری کرد که بعد از اجرای حلقه برای بار اول وقتی دانلود فایل اول تموم شد حلقه تکرار بشه؟ و چطور میتونم progressbar واسه کل دانلود ها بذارم؟
اگه نمونه ای هم از این کار بهم معرفی کنید ممنون میشم.
با تشکر