Когда выполняется длительный процесс, рекомендуется предоставить пользователю обратную связь, например, обновить индикатор выполнения.
Некоторые часто задаваемые вопросы для библиотек GUI предлагают что-то вроде этого:
function long_running_progress()
do_some_work()
update_progress_bar()
while finish
do_some_work()
update_progress_bar()
end while
end function
В любом случае, мы знаем, что рекомендуется отделять код бизнес-логики от кода пользовательского интерфейса. В приведенном выше примере смешивается код пользовательского интерфейса внутри функции бизнес-логики.
Каков хороший метод для реализации функций на уровне бизнес-логики, прогресс которых можно легко отслеживать с помощью пользовательского интерфейса без смешивания слоев?
Приветствуются ответы на любые языки и платформы.