std::promise<ExportFeedBackInfo> promise{}; std::future<ExportFeedBackInfo> future = promise.get_future();
时间: 2024-09-24 09:26:28 浏览: 34
C++11 <future>中std::promise 介绍
在C++中,`std::promise` 和 `std::future` 是用于异步编程的关键组成部分,属于`<future>`和`<thread>`头文件中的特性。`std::promise`是一个发送者,它可以预先准备一个数据项,并承诺将来某个时间会提供这个数据给其他线程或未来的`future`。
在这个例子中:
```cpp
std::promise<ExportFeedBackInfo> promise {}; // 创建一个Promise实例,用于存储出口反馈信息
```
`promise<ExportFeedBackInfo>`说明了这个`promise`将会在未来返回一个`ExportFeedBackInfo`类型的值。当你准备好这个值后,可以通过`set_value()`、`set_exception()`等方法将其设置到`promise`中。
然后,
```cpp
std::future<ExportFeedBackInfo> future = promise.get_future(); // 获取一个Future,代表对Promise的结果的等待
```
`future`是一个接收者,它持有一个对`promise`的引用,允许你在另一个线程或其他地方等待`promise`提供的数据。当你需要获取`ExportFeedBackInfo`结果时,只需调用`future.wait()`或者`future.get()`阻塞当前线程,直到`promise`完成并提供了值。
阅读全文