В моето приложение имам нужда да блокирам изпълнението, докато пристигне сигнал (изчакайте уеб заявката да приключи). Това се случва в нишка без gui.
Разглеждане на пример за блокиране на fortune клиент в Qt 5.3 документи, изглежда, че използва метода waitForConnected(), който е специфичен за класа QTcpSocket, но аз използвам QNetworkAccessManager, който изобщо няма методи за изчакване.
Също така прочетох другаде, че за да направите това, може да искате да създадете временен QEventLoop, който ще блокира, докато събитията завършат. Това решение идва с куп предупреждения, че не трябва да се използва в „производствен код“ поради различни латентни проблеми, които могат да възникнат в ъглови случаи и т.н.
Така. Какво да прави човек?
Мога ли по някакъв начин да накарам това да работи с QWaitCondition, без да въвеждам втора нишка? Какви примитиви за синхронизация съществуват в Qt5, които биха ми позволили да изчакам сигнала да пристигне в една нишка?
Благодаря!