I don't know if that's the best way but here is what I used.
QTimer is your fiend in this situation. You don't need to get a different thread for this as it is asynchronous (Qt documentation strongly advises not to use threads in this case here for example)
I used QTimer to be able to trigger a specific method every interval of time. (you can set the QTimer as singleshot)
I used another QTimer, to wait for the reply, once the first timed out.
By using the signal/slots etc... It was really easy to do.