C#_非同期メソッド / async / await

非同期メソッド

    private async Task<int> Hoge( )

async をつけたメソッドのこと。async:非同期、非同期の。
・メソッドの中で await を使えるようになる
・戻り値は必ず Task または Task<T> になる。
複数のタスクの実行手順を記述した一つのタスク。作業手順書のようなもの。

 

await :
指定した Task の完了を待ち、その結果を取りだす。

 

非同期メソッドの「タスク」の意味

非同期メソッドは作業手順書

手順書ということは、書かれた通りの順序で実行していればいい、ということ。
言い換えると、
「順序正しく実行されていれば、どのスレッドが実行しても構わない
ということになる。
つまり Task とはスレッドの存在を意識する必要がない単なる処理のまとまり

 

ex) 簡易Memo 

    private void Main()
    {
        auto get = Hoge();
    }
   
    private async Task<int> Hoge()
    {
        await Task.Run( () => {
            処理A;
            処理B;
        } );
       
        var c = await 処理C;
        var d = await 処理D;
       
        return result;
    }

・処理 C を実行するスレッドと、処理 D を実行するスレッドは別でも問題ない。
同期処理を Task.Run でラップした場合
  「スレッドプール上で動作する一連の処理」となる。

 

 

こちらから。
https://qiita.com/acple@github/items/8f63aacb13de9954c5da

 

以上。