Здравствуйте, zelenprog, Вы писали: Z>Вопрос у меня возник как применить всё это к длительной операции.
Длительную операцию надо разбить на отдельные составляющие.
Например, пользователь запускает вычисление где-то на сервере.
Это первая субоперация. Возврат ее — вычисления успешно начаты или ошибка (например, входные параметры неправильные).
Далее по логике UI можно опрашивать статус вычислений (например, по таймеру).
Эта субоперация вернет прогресс, признак завершения или ошибку.
И плюс еще можно добавить субоперацию отмены вычислений.
Если взаимодействие UI с остальной системой носит не односторонний характер (клиент-сервер),
то можно организовать подписки на различные события. Компоненты UI смогут регистрировать себя в качестве слушателей на то, что для них требуется.