QNetworkAccessManager 从网上下载图片预览时崩溃

QNetworkAccessManager to download image previews from the Internet crashes

我有 QListWidget,其中的每个自定义小部件都包含一个标签,该标签使用每个自定义小部件中定义的 QNetworkAccessManager 从 Internet 获取它的 QPixmap。

当有 10、20、30 个小部件添加到 QListWidget 时一切正常。

当小部件数量(每个小部件都有 QNetworkAccessManager 以从 Internet 加载图像)达到 300/400 时,应用程序就会崩溃。线程错误到达。

当应用程序中有很多 (300-2000) 个同时从 Internet 加载图像的 QNetworkAccessManagers 时,如何避免线程错误?

我正在使用 Qt 5.5

通常每个申请只需要一个 QNetworkAccessManagers。它是一个相当重的对象,能够同时管理许多并行连接。它还管理套接字和会话,因此对同一服务器的所有 HTTP 请求都可以由单个(或几个;它是可配置的)TCP 连接维护(一旦请求完成,TCP 连接不会关闭,下一个请求在相同的连接)。

创建许多 QNetworkAccessManagers 实例的通常原因是处理来自单独连接的异步信号的麻烦。 请注意,可以将来自 QNetworkReply 的信号连接到适当的插槽。

函数 QNetworkAccessManager::get()QNetworkAccessManager::post() return 指向负责该请求的 QNetworkReply 对象的指针。该 QNetworkReply 对象的信号可以连接到适当的小部件的插槽。因此,一旦回复完成,它将只触发一个特定的小部件插槽,例如