Проблема с чтением файла
Работает приложение, которое обрабатывает большой поток данных из файла. Сделал прогресс бар, но проблема, он движется рывками,т.е. закончил читать данные он и подвинулся.
А теперь всезнающие, вопрос: как сделать так, чтобы прогресс шел равномерно?
Можно конечно читать по байту и выводить прогресс, но это разврат.
Можно конечно читать по байту и выводить прогресс, но это разврат.
Ну разврат или нет, но у меня специфика в том что в целях универсальности мне нельзя ограничиваться длянной строки и приходиться читать по символьно и как следствие проблем с отображением не возникает не возникает. Да и скорость считывания хорошая - файл 2МБ и 30000 строк разбирает до понятной информации за 10 секунд.
В твоем случае можно сделать так - вычислить премерное время для обработки одной строки и сколько у тебя строк и отдельным потоком запустьть прогресс
Ну разврат или нет, но у меня специфика в том что в целях универсальности мне нельзя ограничиваться длянной строки и приходиться читать по символьно и как следствие проблем с отображением не возникает не возникает. Да и скорость считывания хорошая - файл 2МБ и 30000 строк разбирает до понятной информации за 10 секунд.
В твоем случае можно сделать так - вычислить премерное время для обработки одной строки и сколько у тебя строк и отдельным потоком запустьть прогресс
Только отдельным потоком нужно запускать чтение файла, а не прогресс-бар, т.к. цикл обработки сообщений находиться в основном потоке и нет смысла создавать еще один подобный цикл.
Только отдельным потоком нужно запускать чтение файла, а не прогресс-бар, т.к. цикл обработки сообщений находиться в основном потоке и нет смысла создавать еще один подобный цикл.
Не это все понятно, номнене приемлемо читать посимвольно. Дело в том, что обработка идет пакетами, размер которых меняется. Сейчас сделано так, что считывается весь блок (примерно 15 Мб) потом анализируется и если необходимо дочитывается сколько нужно ну и все такое.