我正在开发一个应用程序来跟踪在线 Xbox Live、PSN 和 Steam 朋友。应用程序使用 QNetworkAccessManager 执行一系列 QNetworkRequest。Xbox Live 和 PSN 代码使用 QWebView 来模拟浏览器环境。请求正确执行,但它会减慢主 GUI 线程,直到每个请求完成。
这是一些示例代码:
void Steam::fetchFriends(QString username)
{
QNetworkRequest userXml("http://steamcommunity.com/id/" + username + "/friends/?xml=1");
m_nam->get(userXml);
}
我创建了一个信号来告诉 GUI 朋友已被下载和处理。然后在 GUI 中更新好友列表。我的一些其他代码更复杂,我可能需要将处理代码移动到另一个线程。
有人可以确认 QNetworkAccessManager 和 QNetworkRequest 是多线程的还是应该将它们移到单独的线程中?