1

QThreadネットワーク クライアントを含む を含むプログラムがあります。クライアントは、オブジェクトを受け取り、処理し、サーバーにアップロードし、応答を取得して、メイン スレッドに報告することになっています。でこれを行いstd::promise、その を使用しましたfuturestd::promiseフューチャーを取った後に放出されるオブジェクトのメンバーを作りました。

最小限のサンプル コードは次のとおりです。

私が放出しているオブジェクト:

struct FileToUpload
{
    std::string fileData;
    std::string filename;
    std::promise<int> promise;
}

私が放出に使用している部分:

FileToUpload theFile;
auto uploadFuture = theFile.promise.get_future();
emit uploadFile(&theFile); //passing pointer because promise is non-copyable
auto uploadSuccess = uploadFuture.get();

同じことを行うQtの方法はありますか?

QFutureQtConcurrent で使用できるクラスしか見つかりませんでした。これを で使用する方法を説明する例が 1 つも見つかりませんでしたQThread。Qtでこれを正しく行うためのオプションは何ですか?

4

1 に答える 1