gpt4 book ai didi

c++ - 是否可以在没有 QtConcurrent 的情况下使用 QFuture?

转载 作者:行者123 更新时间:2023-11-30 03:33:16 30 4
gpt4 key购买 nike

我有一个带有 QThread 的程序,其中包含一个网络客户端。客户端应该获取一个对象,对其进行处理,将其上传到服务器,获取响应,然后向主线程报告。我用 std::promise 做到了这一点,并使用了它的 future。我使 std::promise 成为对象的成员,该对象在取得其 future 后发出。

最小的示例代码如下:

我发射的对象:

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 方法来做同样的事情?

我只找到了一个可以和QtConcurrent一起使用的QFuture类。我找不到一个示例来说明如何将其与 QThread 一起使用。我有哪些选择可以正确地使用 Qt 执行此操作?

最佳答案

是的,您可以在没有 QConcurrent 的情况下使用 QFuture。但是 API 没有记录。您可以在以下位置查看我的包装器库 AsyncFuture:

https://github.com/benlau/asyncfuture

它有一个清晰的示例,可以将 QFuture 用作 promise 对象。

关于c++ - 是否可以在没有 QtConcurrent 的情况下使用 QFuture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43087176/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com