欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Qt QNetworkAccessManager请求返回reply内存泄漏

发布时间:2023/12/3 编程问答 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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内存泄漏的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。