Вы здесь
Правильная индикация прогресса цикла
Так как индикатор представляет собой элемент графического интерфейса пользователя, то любая операция с ним выполняется относительно долго, будь то строка состояния, индикатор или даже надпись. Поэтому в случае большого количества проходов цикла обновление индикатора на каждом проходе может стать главным потребителем вычислительных ресурсов компьютера. Хотя такие ситуации легко обнаруживаются с помощью замера производительности, все же лучше сразу предусматривать подобные проблемы.
Привожу 2 вспомогательных метода, которые позволят просто и эффективно реализовать индикацию любого цикла с известным максимальным значением счетчика.
Ключевым моментом в ЛксОбработатьИндикатор() для обновления состояния является требование выполнения
в общем случае двух (любое можно отключить) условий:
- прошло минимальное время с момента последнего обновления
- не превысить заданное общее число обновлений
Вот пример их использования.
Пример выполнения можно увидеть на этом скриншоте:
Оригинал статьи: http://infostart.ru/public/57223/.