This is normally what remote-procedure-call mechanisms do: the host runs the request, waits for it to finish, and sends a completion-status message back to the client. The client only needs to wait for messages and to interpret them when they arrive. If you want to give a "progress message," a timer is the way to do that. (Turn off the timer once the completion-message arrives.)