QThreadネットワーク クライアントを含む を含むプログラムがあります。クライアントは、オブジェクトを受け取り、処理し、サーバーにアップロードし、応答を取得して、メイン スレッドに報告することになっています。でこれを行いstd::promise、その を使用しましたfuture。std::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でこれを正しく行うためのオプションは何ですか?