completion_future 类
表示与 C++ AMP 异步操作对应的 future。
语法
class completion_future;
成员
公共构造函数
名称 | 描述 |
---|---|
completion_future 构造函数 | 初始化 completion_future 类的新实例。 |
~completion_future 析构函数 | 销毁 completion_future 对象。 |
公共方法
名称 | 描述 |
---|---|
get | 等待关联的异步操作完成。 |
然后在受影响的域控制器上,运行 | 将回调函数对象链接到 completion_future 对象,该对象在关联的异步操作执行完成时执行。 |
to_task | 返回对应于关联的异步操作的 task 对象。 |
valid | 获取一个布尔值,该值指示该对象是否与异步操作关联。 |
wait | 阻止,直到关联的异步操作完成。 |
wait_for | 阻止,直到关联的异步操作完成或 _Rel_time 指定的时间已过。 |
wait_until | 阻止,直到关联的异步操作完成或当前时间超过 _Abs_time 指定的值。 |
公共运算符
“属性” | 描述 |
---|---|
operator std::shared_future<void> | 隐式将一个 completion_future 对象转换为一个 std::shared_future 对象。 |
operator= | 将指定 completion_future 对象的内容复制到此对象中。 |
继承层次结构
completion_future
要求
标头:amprt.h
命名空间: 并发
completion_future
初始化 completion_future
类的新实例。
语法
completion_future();
completion_future(
const completion_future& _Other );
completion_future(
completion_future&& _Other );
参数
_Other
要复制或移动的 completion_future
对象。
重载列表
名称 | 描述 |
---|---|
completion_future(); |
初始化 completion_future 类的新实例。 |
completion_future(const completion_future& _Other); |
通过复制构造函数来初始化 completion_future 类的新实例。 |
completion_future(completion_future&& _Other); |
通过移动构造函数来初始化 completion_future 类的新实例。 |
get
等待关联的异步操作完成。 如果在异步操作时遇到存储的异常,则将引发该异常。
语法
void get() const;
operator std::shared_future<void>
隐式将一个 completion_future
对象转换为一个 std::shared_future
对象。
语法
operator std::shared_future<void>() const;
返回值
一个 std::shared_future
对象。
operator=
将指定 completion_future
对象的内容复制到此对象中。
语法
completion_future& operator= (const completion_future& _Other );
completion_future& operator= (completion_future&& _Other );
参数
_Other
要从其复制的 对象。
返回值
对此 completion_future
对象的引用。
重载列表
名称 | 描述 |
---|---|
completion_future& operator=(const completion_future& _Other); |
使用深层复制将指定 completion_future 对象的内容复制到此对象中。 |
completion_future& operator=(completion_future&& _Other); |
使用移动赋值将指定 completion_future 对象的内容复制到此对象中。 |
Then
将回调函数对象链接到 completion_future
对象,该对象在关联的异步操作执行完成时执行。
语法
template <typename _Functor>
void then(const _Functor & _Func ) const;
参数
_Functor
回调函子。
_Func
回调函数对象。
to_task
返回对应于关联的异步操作的 task
对象。
语法
concurrency::task<void> to_task() const;
返回值
对应于关联的异步操作的 task
对象。
valid
获取一个布尔值,该值指示该对象是否与异步操作关联。
语法
bool valid() const;
返回值
如果该对象与异步操作关联,则为 true
;否则为 false
。
wait
阻止,直到关联的异步操作完成。
语法
void wait() const;
wait_for
阻止,直到关联的异步操作完成或 _Rel_time
指定的时间已过。
语法
template <
class _Rep,
class _Period
>
std::future_status::future_status wait_for(
const std::chrono::duration< _Rep, _Period>& _Rel_time ) const;
参数
_Rep
表示计时周期数的算术类型。
_Period
表示每个计时周期所用的秒数的 std::ratio。
_Rel_time
等待操作完成的最长时间。
返回值
返回:
std::future_status::deferred
(如果关联的异步操作未运行)。std::future_status::ready
(如果关联的异步操作已完成)。std::future_status::timeout
(如果已超过指定的时间段)。
wait_until
阻止,直到关联的异步操作完成或当前时间超过 _Abs_time
指定的值。
语法
template <
class _Clock,
class _Duration
>
std::future_status::future_status wait_until(
const std::chrono::time_point< _Clock, _Duration>& _Abs_time ) const;
参数
_Clock
测量此时间点的时钟。
_Duration
从 _Clock
的 epoch 开始的时间间隔,在此之后函数将超时。
_Abs_time
函数将超时的时间点。
返回值
返回:
std::future_status::deferred
(如果关联的异步操作未运行)。std::future_status::ready
(如果关联的异步操作已完成)。std::future_status::timeout
(如果已超过指定的时间段)。
~completion_future
销毁 completion_future
对象。
语法
~completion_future();