同步 QNetworkAccessManager::get 的正确方法是什么?
问问题
10764 次
2 回答
10
百胜可能会使用这样的东西:
QEventLoop loop;
connect(_netReply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
于 2013-07-01T17:33:11.683 回答
2
wiki 和 yttrium 的答案中提到的简单解决方案非常脆弱,因为它不能处理所有可能的故障情况(例如代理),因此不应该在生产环境中使用,不幸的是它已经变得非常多产,所以任何要求同步 QNAM 的人都会被“异步使用它 [愚蠢]”或这段最终会失败的简单代码所困扰。
我还没有找到 Qt 团队自己制作的“正确”解决方案,但是 codeproject 上的这个人已经足够体面,可以制作一个更全面的包装器,应该更安全: http:
//www.codeproject.com/Articles /484905/使用-QNetworkAccessManager-for-synchronous-download
于 2014-07-28T08:59:45.823 回答