【发布时间】:2016-02-27 15:16:46
【问题描述】:
我有一个 QNetworkAccessManager 。假设我有一个待处理的请求:
QNetworkRequest request(url);
this->m_networkManager->get(request)
我可以随时关闭QNetworkAccessManager 吗?我之所以问,是因为在挂起的获取请求期间,当我破坏我的对象 m_networkManager 时,我看到了 write access violation。
或者我怎样才能安全地销毁管理器,似乎没有停止或关闭功能。
【问题讨论】:
-
您是否尝试在从
QNetworkManager::get()返回的QNetworkReply上调用abort()? -
感谢您的提示。我想到的一种解决方法,但这有点不方便,因为我必须存储所有请求,直到它们最终在接收槽中处理。在那里我必须将它们从临时列表中删除,因为接收槽需要销毁请求。
-
实际上,现在我查看文档,删除
QNetworkAccessManager会破坏其所有待处理的QNetworkReply实例,而这些实例又应该关闭它们的所有连接。所以简单地删除QNetworkAccessManager应该没问题。我不知道您为什么会看到访问冲突——这可能是无关的。 -
可能是,将重新阅读文档,感谢您提供的信息。奇怪的是,只有在我有待处理的请求时才会发生这种情况。
标签: qt access-violation qnetworkaccessmanager qt5.5