2

在用户应该能够取消所有上传的应用程序上工作。现在我想知道我是否必须追查 QNAM 的所有回复,或者只是删除它并期望它们全部中止?

文档中没有任何关于中止的说明,但我假设它会。

销毁 QNetworkAccessManager 对象并释放所有资源。请注意,从此类返回的 QNetworkReply 对象将此对象设置为它们的父对象,这意味着如果您不对它们调用 QObject::setParent(),它们将与它一起被删除。

编辑:最终为每个回复使用一个包装器(它也接管它并重试等),它在其析构函数中既断开 QNetworkReplys 信号又中止它。它与包装器一起被删除(父->子)

4

1 回答 1

3

它只会删除回复。从来源:

QNetworkAccessManager::~QNetworkAccessManager()
{
    // ...

    qDeleteAll(findChildren<QNetworkReply *>());

    // ...
}

并且 QNetworkReply 的析构函数是空的,所以你需要手动中止它们。

于 2012-04-27T01:25:00.963 回答