Вы можете изменить код сервера, чтобы он обновлял информацию о ходе выполнения на стороне сервера (без изменения сигнатур функций), а затем использовать отдельный метод, который может запрашивать эту информацию отдельно.
Это позволит вам модернизировать поддержку прогресса без какого-либо влияния на ваши существующие вызовы на сервер, просто добавьте новый фоновый поток в пользовательском интерфейсе, проверяя обновленную информацию о ходе выполнения, пока выполняется долго выполняемая задача.
Изменить: Я думаю, тот же подход будет работать для задач, которые имеют место в клиенте. Но, тем не менее, здесь также может быть использован класс статического индикатора прогресса.