我正在使用通过QT 4.8插槽提供HTTP / TCP请求的QT复杂应用程序。
示例模块(QT插槽):
QString HelloWorld::greet()
{
return "Hello world...";
}
使用此模块,我们可以通过HTTP或TCP请求调用我们的服务。
我正在添加一个需要从外部HTTP服务器同步检索数据的新模块。为此,我正在使用QEventLoop和QNetworkAccessManager。
问题发生在QEventLoop的行为上。我把问题最小化了:
bool NewModule::sendRequest()
{
QEventLoop loop;
qDebug() << "BEFORE";
loop.exec();
qDebug() << "AFTER";
}
当我从入口点X(即执行HTTP请求)调用此方法时,事件循环执行循环(仅记录“BEFORE”),但是从入口点Y调用相同的方法(即执行TCP请求) ,事件循环不循环(记录“BEFORE”和“AFTER”)。
我不知道为什么会出现这种不同的行为。有人能指出我正确的方向吗?
由于