您的位置:首页 > 科技 > 能源 > 建设网站公司哪家性价比高_新乐网站制作价格_百度关键词seo推广_代理推广

建设网站公司哪家性价比高_新乐网站制作价格_百度关键词seo推广_代理推广

2025/4/12 23:01:28 来源:https://blog.csdn.net/zhoutan001/article/details/145971757  浏览:    关键词:建设网站公司哪家性价比高_新乐网站制作价格_百度关键词seo推广_代理推广
建设网站公司哪家性价比高_新乐网站制作价格_百度关键词seo推广_代理推广

阻塞源码赏析

这是最近一次项目遇到的问题,原因是我觉得子线程里俩次请求间隔太短了,会引起服务器屏蔽我的api因此,我故作聪明加多了一个延时函数,欢迎各位鉴赏代码。

// 并行发起双请求
QNetworkRequest liveRequest(liveUrl);
liveRequest.setSslConfiguration(sslConfig);
QNetworkReply *liveReply = m_manager->get(liveRequest);QThread::msleep(10000);  QNetworkRequest forecastRequest(forecastUrl);
forecastRequest.setSslConfiguration(sslConfig);
QNetworkReply *forecastReply = m_manager->get(forecastRequest);// 处理实时响应
connect(liveReply, &QNetworkReply::finished, [this, liveReply]() {if (liveReply->error() == QNetworkReply::NoError) {QJsonDocument doc = QJsonDocument::fromJson(liveReply->readAll());parseLiveData(doc.object());}liveReply->deleteLater();
});// 处理预报响应
connect(forecastReply, &QNetworkReply::finished, [this, forecastReply]() {if (forecastReply->error() == QNetworkReply::NoError) {QJsonDocument doc = QJsonDocument::fromJson(forecastReply->readAll());parseForecastData(doc.object());}forecastReply->deleteLater();
});

下面这个版本才是不会引起主线程阻塞的版本,各位可以分析是什么原因导致了主线程阻塞。


// 串行发起双请求
QNetworkRequest liveRequest(liveUrl);
liveRequest.setSslConfiguration(sslConfig);
QNetworkReply *liveReply = m_manager->get(liveRequest);// 处理实时响应
connect(liveReply, &QNetworkReply::finished, [this, liveReply]() {if (liveReply->error() == QNetworkReply::NoError) {QJsonDocument doc = QJsonDocument::fromJson(liveReply->readAll());parseLiveData(doc.object());QThread::msleep(1000);}liveReply->deleteLater();
});QNetworkRequest forecastRequest(forecastUrl);
forecastRequest.setSslConfiguration(sslConfig);
QNetworkReply *forecastReply = m_manager->get(forecastRequest);// 处理预报响应
connect(forecastReply, &QNetworkReply::finished, [this, forecastReply]() {if (forecastReply->error() == QNetworkReply::NoError) {QJsonDocument doc = QJsonDocument::fromJson(forecastReply->readAll());parseForecastData(doc.object());}forecastReply->deleteLater();
});

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com