2018年06月19日
《その407》タスクの起動・タスクの返却値
タスクの起動・タスクの返却値
【タスクの起動】
create_task関数を使ってタスク task1 を生成します。
auto task1 = create_task([] { cout << 1000 << '\n'; });
タスク task1 は、、
task1.then([]{ });
あるいは
task1.wait();
などのコードを記述することで 確実に実行されます。
【タスクの返却値】
ラムダ式が値を返却するように変更してみます。
auto task1 = create_task([] { return 1000; });
返却される値は、
task1.then([](int n){ cout << n << '\n'; });
あるいは
cout << task1.get() << '\n';
のようにして確認できます。
このことから、継続タスクの仮引数 int n が、task1 のラムダ式の返却値を受け取っていることがわかります。
また、task1.get() により、タスクオブジェクト task1 から ラムダ式の返却値を取り出すことができることもわかります。
#include <ppltasks.h>
#include <iostream>
using namespace concurrency;
using namespace std;
int main()
{
auto task1 = create_task([] { return 1000; });
cout << task1.get() << '\n';
// task1.then([](int n) { cout << n << '\n'; });
// としても同様です。
}
![add_d255.png](/cplusplus/file/add_d255.png)
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7799319
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック