オンラインのXboxLive、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がマルチスレッドであること、またはそれらを別々のスレッドに移動する必要があるかどうかを誰かが確認できますか?