QEventLoop的exec在某些情况下不会循环。 (QT 4.8)

时间:2017-07-10 16:35:20

标签: c++ qt qt4 signals-slots qeventloop

我正在使用通过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”)。

我不知道为什么会出现这种不同的行为。有人能指出我正确的方向吗?

由于

0 个答案:

没有答案