4

非常に基本的な質問です。ドキュメントには、のすべてのメソッドQNetworkAccessManagerが再入可能であると記載されています。もしそうなら、ロックなしでget()メソッドを実行することはQRunnable合法ですか?私のコードは次のようになります。

class MyClass: public QRunnable
{
    void run()
    {
        ...
        QNetworkAccessManager nam;
        QNetworkReply* reply =  name.get(request)    // No Read-write lock.
        ...
    }
};
4

2 に答える 2

3

Qtのドキュメントから:

[...]各スレッドがクラスの異なるインスタンスを使用している限り、複数のスレッドから[同時に]安全にメンバー関数を呼び出すことができる場合、クラスは再入可能であると言われます。

毎回異なるインスタンス ( でスタック上に作成したものrun()) を使用しているので、安全です。

于 2011-05-06T19:15:04.703 に答える
0

これに対する補足として、GETリクエストを非同期にしたいだけなら、QNetworkAccessManagerすでに非同期になっています(ドキュメントでそう言っています)。

于 2011-05-07T22:41:00.893 に答える