|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Отображение выполнения процесса с неизвестным общим временем
Наверняка есть натоптанные тропы решения подобных вопросов, найти блок-схему или пояснений не могу. Своя реализация, которая крутится в голове, кажется мрачной и неудобной(предварительно считая на бумаге максимальное количество и в ходе выполнения отнимать пройденные "участки").
А ситуация такая: существует класс с парой десятков методов. Выполнение этих методов затрагивает обращение к серверу через API. Теперь у меня появляются в работе функции, которые вызывают эти методы в разном количестве и порядке. Если функция в ходе видит проблемы выполнения, то запускаем заново некоторые методы или добавляем новые. Для наглядности и понимания пусть это выглядит как некая рекурсивная функция с Кейсами. Конечно же, чтобы не уйти в вечную петлю, в итоге есть выходы - "количество попыток", успешное выполнение или исключительная ситуация. Но в любом случае я не могу предварительно рассчитать ни общее время выполнения, ни количество методов для выполнения ну и т.д. Как же разрешить задачу? |
#2
|
|||
|
|||
Варианты:
1. Отказаться от показа прогресса. Просто крутить какой-нить индикатор, что процесс идет. 2. Не важно сколько методов реально будет вызванно. У тебя есть некоторая логическая цепочка. Разбиваешь эту логическую цепочку на логические блоки и по ним выставляешь прогресс. Недостаток в данном случе - неравномерное заполнение шкалы прогресса, но, как мне кадется, это не самая большая проблема. |