Я пытаюсь предотвратить ввод в сцене, если некоторые вещи с сервера не загружаются, у меня есть флаг BOOLОтветный запроса никогда не вызывается, когда я ставлю станд :: this_thread :: sleep_for (1)
done = false;
CCHttpRequest *pRequest;
// initialization ....
pRequest->setResponseCallback(this, httpresponse_selector(SceneController::on_response));
CCHttpClient::getInstance()->send(pRequest);
pRequest->release();
while(!done) {
std::chrono::milliseconds duration(1);
std::this_thread::sleep_for(duration);
}
в функции обратного вызова on_response
Я установил
done = true;
, что должно (но не работает) вырваться из бесконечного цикла. Проблема с этим подходом заключается в том, что callback никогда не вызывается (точка останова на первой строке в обратном вызове никогда не достигается). Когда я комментирую while loop
, это называется обратным вызовом.
Кто-нибудь знает, в чем проблема и как предотвратить дальнейшее выполнение, пока я не получаю данные с сервера?
CallStack, когда он работает на точке останова внутри обратного вызова
Это может помочь также показать код 'on_response', чтобы мы могли видеть, что там происходит. – Incubbus
@Incubbus Ничего, кроме того, что я сделал done = true; и это не сработает. –