名前空間
変種
操作

std::future::wait

提供: cppreference.com
< cpp‎ | thread‎ | future
 
 
スレッドサポートライブラリ
スレッド
(C++11)
this_thread 名前空間
(C++11)
(C++11)
(C++11)
相互排他
(C++11)
汎用ロック管理
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
条件変数
(C++11)
フューチャー
(C++11)
(C++11)
(C++11)
(C++11)
 
 
void wait() const;
(C++11およびそれ以降)

結果が利用可能になるまでブロックします。 呼び出し後 valid() == true になります。

この関数を呼ぶ前に valid()== false であった場合、動作は未定義です。

目次

[編集] 引数

(なし)

[編集] 戻り値

(なし)

[編集] 例外

(なし)

[編集] ノート

処理系は呼び出し前に valid == false であった場合を検出し、エラーコンディション std::future_errc::no_state を持つ std::future_error を投げることが推奨されます。


[編集]

#include <iostream>
#include <future>
#include <thread>
 
int fib(int n)
{
  if (n < 3) return 1;
  else return fib(n-1) + fib(n-2);
}
 
int main()
{
    std::future<int> f1 = std::async(std::launch::async, [](){
        return fib(20);
    });
    std::future<int> f2 = std::async(std::launch::async, [](){
        return fib(25);
    });
 
    std::cout << "waiting...\n";
    f1.wait();
    f2.wait();
 
    std::cout << "f1: " << f1.get() << '\n';
    std::cout << "f2: " << f2.get() << '\n';
}

出力:

waiting...
f1: 6765
f2: 75025

[編集] 関連項目

結果を待ちます。 指定されたタイムアウト期間が満了するまで利用可能にならなければリターンします
(パブリックメンバ関数) [edit]
結果を待ちます。 指定時刻に達するまで利用可能にならなければリターンします
(パブリックメンバ関数) [edit]