Доброй ночи, подскажите как использовать ProgressBar при загрузке множества файлов. У меня всегда разный список ссылок и программа узнает об этом только тогда, когда я кликну по кнопке. Мне приходит список ссылок и через WebClient я их скачиваю. Я нашел примеры в гугле но там для одного файла. Хотелось, что бы ProgressBar показывал информацию на основании количества файлов которое я качаю.
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
WebClient clinet;
private void button1_Click(object sender, EventArgs e)
{
string url = textBox1.Text;
if(!string.IsNullOrEmpty(url))
{
Thread thread = new Thread(() =>
{
Uri uri = new Uri(url);
string filename = System.IO.Path.GetFileName(uri.AbsolutePath);
clinet.DownloadFileAsync(uri, Application.StartupPath + "/" + filename);
});
thread.Start();
}
}
private void Form1_Load(object sender, EventArgs e)
{
clinet = new WebClient();
clinet.DownloadProgressChanged += Clinet_DownloadProgressChanged;
clinet.DownloadFileCompleted += Clinet_DownloadFileCompleted;
}
private void Clinet_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
MessageBox.Show("Download Complete!!!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void Clinet_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
Invoke(new MethodInvoker(delegate ()
{
progressBar1.Minimum = 0;
double receive = double.Parse(e.BytesReceived.ToString());
double total = double.Parse(e.TotalBytesToReceive.ToString());
double precentage = receive / total * 100;
label1.Text = $"Downloaded { string.Format("{0:0.## }", precentage) }%";
progressBar1.Value = int.Parse(Math.Truncate(precentage).ToString());
}
));
}
}
}
Соорудил такой вот код, но он качает только если один файл.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как узнать какая версия nuget установлена? Если просто ввести:
Зачем в Visual C# (использую Visual Studio 2017) у элементов управления свойство margin если вне зависимости от его значения можно свободно перемещать элементы...
Есть screensaver, и при запуске он открывает две копии приложения на количество мониторовМне необходимо чтоб некоторые функции на одном из мониторов...
У меня есть некий класс-сервисЯ хотел бы обвешать его логами на все случаи жизни