Async note
Async および Await を使用した非同期プログラミング
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/async/index
(サンプルソース付き)
async
非同期であることを指定します。
の修飾子が使用されているメソッドまたは式を、"非同期メソッド" と呼びます。
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/async
Task クラス
非同期操作を表します。
Taskを極めろ!async/await完全攻略
https://qiita.com/acple@github/items/8f63aacb13de9954c5da
1000ミリ秒待機するタスクの完了を待ち、その後"Done!"を出力する、というタスク
async Task AsyncMethod()
{
await Task.Delay(1000); // 1000ミリ秒待機するという仕事の完了を待ち、
WriteLine("Done!"); // "Done!"をコンソールに出力する
} // という、「一つのTask」を表す。
- シグネチャにasyncを付けたメソッドのことを「非同期メソッド」と呼ぶ。
- 非同期メソッドは、awaitキーワードを使えるようになる。
- awaitは、「指定したTaskの完了を待つ」「そして、その結果を取り出す」事ができる。
- 非同期メソッドの戻り値は必ずTask/Task\
になる。
非同期メソッドとは、複数の「タスク」の実行順序などを記述した「一つのタスク」と見なす事ができる。 (作業手順書のようなもの)
var task = Task.Run(() =>
{
MethodA();
MethodB();
});
Task.Runの概念を、一言で言えば
「同期的な一連の処理を、一つのタスクとみなす」
だそうな。