Qt QNetworkAccessManager请求返回reply内存泄漏
生活随笔
收集整理的这篇文章主要介绍了
Qt QNetworkAccessManager请求返回reply内存泄漏
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
做项目http请求时发现内存泄漏,原来QNetworkAccessManager请求返回的reply需要删除,有两种方法删除:
1.在finish槽函数删除reply,需要使用deleteLater而不是delete
QNetworkReply *reply = m_pManager->get(request);
connect(reply,SIGNAL(finished()),this,SLOT(finished()));
void finished()
{
if (reply)
{
reply->deleteLater();
}
}
2.在事件循环后删除
QNetworkReply *reply = m_pManager->get(request);
connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
eventLoop.exec();
if (reply)
{
reply->deleteLater();
}
其实官方文档也有说明,如下:
总结
以上是生活随笔为你收集整理的Qt QNetworkAccessManager请求返回reply内存泄漏的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: python语言用法_python语言基
- 下一篇: docker安装ElasticSearc