C\C++\Qt « Последовательное выполнение после QNetworkAccessManager

Всем привет!
Использую в своём проекте QNetworkAccessManager. После методов get и post необходимо связывать сигнал finished с слотами для обработки данных. Однако получается, что каждый раз приходиться создавать новый метод. Однако хотелось бы,чтобы я мог обрабатывать данные сразу же после выполнения строки,т.е. хотелось бы чтобы в коде:

_reply = pManager->post(request, data);
_answer = QString::fromUtf8(_reply->readAll());


строка _answer была бы не пустой. На данный момент приходиться создавать новый слот. Может есть какой-либо способ заставить ожидать следующую строку до тех пор, пока не выполнится определённый сигнал или что-то похожее на это?

1 ответов


Стандартного способа нет. Методы post, get, readAll являются асинхронными и работают посредством сигналов\слотов.
Но вы можете придумать обходной путь, самым простым примером может быть такой цикл:


while(_answer.isEmpty()) {
  Sleep(500);
  _answer = QString::fromUtf8(_reply->readAll());
}
 

где Sleep - функция из windows.h, ее аналог можно написать используя QThread