Administrar la comunicación asincrónica: cómo examinar la respuesta recibida en otro hilo

Tengo un hilo de despachador y un hilo de escucha. Cuando despacho un comando, quiero esperar la respuesta antes de enviar el comando de seguimiento. Además, necesito examinar la respuesta antes de poder proceder con el segundo comando, el menor de los cuales es confirmar que se recibe la respuesta y que todo está bien. Mi pseudo código está abajo:

void MainWindow::downloadData()
{
    dispatcher->getInfo(); // sends command

    // QString response = receiver->response() // idealy I would like to check response but since its async, i can't really do that!

    dipatcher->askData(); // the 2nd command and so forth

}

¿Hay alguna forma elegante de resolver este problema? La única forma en que puedo pensar es si uso el mismo hilo y todas las llamadas están bloqueadas, pero esa no es necesariamente una buena solución.

En Qt, podría usar señales y ranuras para conectarlas en cascada, de modo que cuando se dispara la primera señal, inicia toda la secuencia de operación (cada ranura emite una nueva señal) pero también parece bastante sucia.

Respuestas a la pregunta(1)

Su respuesta a la pregunta