2 Progress Bars для загрузки нескольких файлов
На данный момент у меня есть система очередей, которая помещает все ссылки для загрузки файлов и загружает их по одному.
То, что я пытался сделать, это не 1, а 2 бара прогресса. Верхний индикатор выполнения будет для прогресса текущего файла, а следующий ниже будет для общего прогресса, прежде чем все файлы будут загружены.
Я попытался придумать, как это сделать, но я не могу понять, как я буду заниматься этим.
Я пробовал это:
If Me.fileUrls.Count = 1 Then
CProgressBarTotal.Value = Help.ProgPercent.Text
Else
CProgressBarTotal.Value = Help.ProgPercent.Text / Me.fileUrls.Count
End If
И я понял, что это не сработает. Я также пытался подумать о других способах этого, но я ничего не мог придумать.
Кто-нибудь знает, как я смогу это сделать? Благодарю.
Вам не нужно использовать оператор if:
CProgressBarTotal.Value = (currentFileNumber / Me.fileUrls.Count + Help.ProgPercent.Text / 100 / Me.fileUrls.Count) * CProgressBarTotal.Maximum
Чтобы иметь второй индикатор выполнения, который отслеживает загруженные байты:
Перед отображением экрана загрузки определите общее количество загружаемых байтов. Специфика здесь зависит от механизма загрузки, но большинство FTP и HTTP-серверов будут предоставлять размеры файлов. В тех случаях, когда они этого не делают, вам придется сделать разумную оценку. Сохраните это в доступной переменной-члене.
Создайте доступную переменную-члена для общего количества загруженных байтов. Привяжите это к той же подпрограмме, которая обновляет ход одного файла, так что каждая загрузка "tick" также накапливает поле "количество загруженных байтов" в дополнение к проценту текущего файла, как и сейчас.
Привяжите общее количество байтов к максимальному значению "общий процент". Свяжите байт, загруженный счетчиком, с положением индикатора выполнения.
Для дополнительных точек: Настройте привязки динамическим способом, чтобы, если файл добавлен в (или удален) из вашей очереди загрузки, общее количество байтов для загрузки подсчитывается в реальном времени, а индикатор выполнения сбрасывает прогресс соответственно,
- Вопросы
- Downloadfileasync
- 2 Progress Bars для загрузки нескольких файлов