私が理解していることから、使用するawait
には、 としてマークされているメソッド内にいる必要がありますasync
。その場合は、await
on anyTask<Thing>
を使用して、 の結果の値をある程度同期的に取得できますTask
。
Task<bool> task = new Task<bool>(() => false);
task.Start();
int result = await task;
これを行うには、 でマークされたメソッド内にいる必要がありますasync
。
ここで聞きたいのは、 の意味とasync
、メソッドを でマークした結果はどうなるかということasync
です。
また、この2つの違いは何ですか?
Task<bool> Foo() {
var task = new Task<bool>(() => false);
task.Start();
return task;
}
async Task<bool> Foo2() {
var task = new Task<bool>(() => false);
task.Start();
return await task;
}
どちらもメソッドawait
内から使用できます。async
var res1 = await Foo();
var res2 = await Foo2();
体内でFoo2
使えるのと使えないのとの違いだけですか?await
Foo