Вы здесь

Правильная индикация прогресса цикла

tags: 

Так как индикатор представляет собой элемент графического интерфейса пользователя, то любая операция с ним выполняется относительно долго, будь то строка состояния, индикатор или даже надпись. Поэтому в случае большого количества проходов цикла обновление индикатора на каждом проходе может стать главным потребителем вычислительных ресурсов компьютера. Хотя такие ситуации легко обнаруживаются с помощью замера производительности, все же лучше сразу предусматривать подобные проблемы.

Привожу 2 вспомогательных метода, которые позволят просто и эффективно реализовать индикацию любого цикла с известным максимальным значением счетчика.

 

Ключевым моментом в ЛксОбработатьИндикатор() для обновления состояния является требование выполнения
в общем случае двух (любое можно отключить) условий:
- прошло минимальное время с момента последнего обновления
- не превысить заданное общее число обновлений

Вот пример их использования.

 

Пример выполнения можно увидеть на этом скриншоте:

Оригинал статьи: http://infostart.ru/public/57223/.