Проблема создания индикатора процесса

Страдалецъ
Дата: 04.09.2019 16:35:46
У меня индикатор процесса обычный шэйп, который может иметь 4 цвета (fpOnline, fpIdle, fpBusy, fpOffline). Проблема в том, что скорость переключения между цветами составляет 15-40 мс, что естественно слишком быстро для восприятия. Первое и последнее состояние разовые, там еще как-то можно замедлить, что не скажется на скорость исполнения задачи, но вот оставшиеся два состояния замедлять нельзя, т.к. замедлим и исполнение задачи. И вот что такое придумать что-бы скорость смены цветов стала нормальной для восприятия и в то-же самое время она должна быть реалистичной для процесса.
Zelius
Дата: 04.09.2019 16:47:15
Страдалецъ,

попробуй обновлять цвет по таймеру, раз в 100 мс, 250, 300, 500
_Vasilisk_
Дата: 04.09.2019 16:47:44
В чем смысл индикатора, который после отображения показывает невалидное состояние? Пользователю интересен такой индикатор?
alekcvp
Дата: 04.09.2019 16:52:26
Страдалецъ,

Если процесс завершается так быстро, что не успевает глаз заметить - то зачем вам индикатор?..
zinpub
Дата: 04.09.2019 16:55:26
Страдалецъ,

Показывай граничные состояния, а в процессе просто анимашку каку-нибудь.
Дегтярев Евгений
Дата: 04.09.2019 17:04:53
как вариант
чтобы не моргать как елка, обновлять раз в секунду, если с момента последнего перехода в idle прошло менее сек, то показывать busy
Страдалецъ
Дата: 04.09.2019 17:19:10
автор
Если процесс завершается так быстро, что не успевает глаз заметить - то зачем вам индикатор?..
быстрая скорость переключения между состояниями, а вот сами процессы могут протекать часами. Да и просто хочется реализовать такое :)
Мимопроходящий
Дата: 04.09.2019 17:24:21

04.09.2019 17:19, Страдалецъ пишет:
> Да и просто хочется реализовать такое

я хочу чтоб был на Земле коммунизм

Posted via ActualForum NNTP Server 1.5

rgreat
Дата: 04.09.2019 17:28:34
Страдалецъ,

Сделай полосу прогресса, где состояния показывай вертикальными полосками по времени.

Типа этого:
Страдалецъ
Дата: 04.09.2019 17:28:57
автор
если с момента последнего перехода в idle прошло менее сек, то показывать busy

ну вот пробуем это реализовать:
Время: 00:00:00:0000 fpIdle
Время: 00:00:00:0015 fpBusy
Время: 00:00:00:0030 fpIdle
...
Время: 00:00:01:0000 fpIdle
И какое состояние было в течении секунды ожидания? 50/50 и то и другое. Можно в принципе считать, что если в течении секунды хотя-бы раз произошло изменение на fpBusy, то считать что он был постоянно fpBusy, но тогда задержка отображения будет не в реальном времени, а с запаздыванием на секунду.