2014-10-10 2 views
0

Всякий раз, когда я пытаюсь загрузить большие файлы, моя программа ничего не показывает мне до загрузки файлов, а затем печатает «загружен успешно», но я хочу, чтобы она печатала, сколько процентов загружается каждые 0,500 мс (Его в C++), как я могу получить, насколько загружен файл, чтобы преобразовать его в проценты?Индикатор выполнения для загрузки файла

+0

Это зависит от того, какой файл вы загружаете и что вы делаете с ним. Если это CSV, довольно легко. Если это PSD, даже Photoshop не дает точной оценки загрузки. – ceejayoz

+0

Образец кода был бы полезен. – sjdowling

+0

Что означает «погрузка»? Вы вручную читаете байты в буфер? Какая дальнейшая обработка требуется до тех пор, пока вы не учтите, что загрузка завершена? – 5gon12eder

ответ

1

Вам нужно будет получить общее количество байтов или строк, находящихся в файле. Это будет знаменатель при расчете процента.

Если вы используете размер файла, вы можете рассчитать процент, используя позицию чтения файла.

Рекомендуемый алгоритм состоит в использовании как минимум двух потоков.
Один поток - это поток графического интерфейса пользователя.
Другая нить - рабочий поток. Рабочий поток будет читаться в файле.

Некоторые люди считают, что рабочий поток должен опубликовать его прогресс в глобальной переменной, и поток GUI должен опросить эту переменную.

Другие люди считают, что рабочий поток должен отправлять сообщения в поток GUI через периодические или другие интервалы времени.

Выбор за вами.

Смежные вопросы