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
函数将超时的时间点。

返回值

返回:

  1. std::future_status::deferred(如果关联的异步操作未运行)。

  2. std::future_status::ready(如果关联的异步操作已完成)。

  3. std::future_status::timeout(如果已超过指定的时间段)。

~completion_future

销毁 completion_future 对象。

语法

~completion_future();

另请参阅

并发命名空间 (C++ AMP)