次の方法で共有


completion_future クラス

C ++. AMP の非同期操作に対応するフューチャを表します。

構文

class completion_future;

メンバー

パブリック コンストラクター

名前 説明
completion_future コンストラクター completion_future クラスの新しいインスタンスを初期化します。
~completion_future デストラクター completion_future オブジェクトを破棄します。

パブリック メソッド

名前 説明
get 関連する非同期操作が完了するまで待機します。
then 関連する非同期操作の実行が終了するときに、実行される completion_future オブジェクトにコールバック関数オブジェクトを継承します。
to_task 関連する非同期操作に対応する task オブジェクトを返します。
valid オブジェクトが非同期操作に関連するかどうかを示すブール値を取得します。
待機 関連する非同期操作が完了するまでブロックします。
wait_for 関連する非同期操作が完了するまで、または _Rel_time で指定された時間が経過するまで、ブロックします。
wait_until 関連する非同期操作が完了するまで、または現在の時間が _Abs_time によって指定された値を超過するまで、ブロックします。

パブリック演算子

名前 説明
演算子 std::shared_future<void> completion_future オブジェクトを std::shared_future オブジェクトに暗黙的に変換します。
operator= 指定された completion_future オブジェクトの内容をこのオブジェクトにコピーします。

継承階層

completion_future

要件

ヘッダー: amprt.h

名前空間: concurrency

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;

演算子 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 オブジェクトの内容をこのオブジェクトにコピーします。

関連する非同期操作の実行が終了するときに、実行される completion_future オブジェクトにコールバック関数オブジェクトを継承します。

構文

template <typename _Functor>
void then(const _Functor & _Func ) const;

パラメーター

_Functor
コールバック ファンクター。

_Func
コールバック関数オブジェクト。

to_task

関連する非同期操作に対応する task オブジェクトを返します。

構文

concurrency::task<void> to_task() const;

戻り値

関連する非同期操作に対応する task オブジェクト。

有効

オブジェクトが非同期操作に関連するかどうかを示すブール値を取得します。

構文

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のエポックが開始されてからの時間間隔。その後、関数はタイムアウトします。

_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)