(Qt) QNetworkAccessManager 减慢其他应用程序

(Qt) QNetworkAccessManager slows down other application

似乎在我在 Qt 中创建了一个 QNetworkAccessManager 对象之后,它使其他应用程序(那些大量使用网络的应用程序,例如多人游戏)运行变慢了。

例如,如果我 运行 Dota2 同时 运行 将我的应用程序作为背景,即使我的 Qt 应用程序非常轻(我通过进程资源管理器检查过,它整个时间仅消耗 CPU 使用量的不到 1%)。如果我从代码中删除 QNetworkAccessManager 部分,那么游戏 运行 会顺利进行,没有任何滞后。

这是我使用 QNetworkAccessManager 的方式;

QNetworkAccessManager *qnam = new QNetworkAccessManager(this);
response = qnam->get(QNetworkRequest(url));
connect(response , &QNetworkReply::finished, this, &Test::parse_response);

并在 parse_response()

void parse_response() {
        // Network Error occured
        if (response->error() != QNetworkReply::NoError) {
            response->deleteLater();
            return;
        }

        response->deleteLater();
        qnam->deleteLater();
}

有趣的是,当我通过 Process Explorer 检查 I/O 我的应用程序的使用情况时,它在 I/O 使用情况

上显示了奇怪的 activity

当我没有使用 QNetworkAccessManager 时,那种奇怪的 I/O 用法就消失了。因此我假设我的 qnam 没有被成功删除,但在我的代码中没有发现任何问题。

有没有人对这个问题有过类似的经历? 还是只是我对 QNetworkAccessManager 用法的配置不正确?

我发现这是 QNetworkAccessManager 中的错误。

在无线环境中,QNetworkAccessManager 每隔几秒扫描一次 wifi 状态。那些小尖峰就是证据。检查以下错误报告。

https://bugreports.qt.io/browse/QTBUG-40332

要解决这个问题,要么用

编译
-D QT_NO_BEARERMANAGEMENT 

选项或仅删除插件中的不记名文件夹。