C#_async / await と UI

UIはシングルスレッド
このリソースを内部処理で長時間専用させたくない。

故に非同期メソッドには
「まるで同期処理のような書き方で非同期処理を行えて、
自然に UI 処理に組み込める」というものが期待された。

よって、 async / await
非同期メソッド内で何らかの処理をawaitした後、
その続きはawaitする前と同じスレッド上で実行される」
という設計になった。

 

 例えば、
UIからボタン操作などで非同期メソッドを開始 ( UIスレッド上で動作 ) し、
その途中で何かしらの内部処理を呼び出して await
( 内部処理は別スレッドで動作、UI スレッドは自由)
内部処理が完了した後の続きは再びUIスレッドに戻って動作するので、
UI の更新などのスレッド依存処理を書いても
問題なく動作させることができる。

 

 

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

以上。