std::packaged_task它包装了一可调用的目标(如function, lambda expression, bind expression, or another function object)以便异步调用,它和promise在某种程度上肴点像,promise保存了状态共享的值,而packaged_task保存的是一个函数。
使用std::packaged_task需要包含如下头文件
#include
using namespace std;
get_future函数
future get_future()
{ // return a future object that shares the associated
// asynchronous state
return (future(_MyPromise._Get_state_for_future(), _Nil()));
}
获取与共享状态相关联的std::future对象,在调用该函数之后,两个对象共享相同的共享状态,具体解障如下:
(1)std::packaged_task 对象是异步Provider,它在某一时刻通过调用被包装的任务来设置共享状态的值.
(2)std::future 对象时一个异步返回对象,通过它