タスク ベースの非同期パターン (TAP) を使用して非同期操作を行うと、コールバックを使用して、ブロックすることなく待機できます。 タスクの場合、これは Task.ContinueWith などのメソッドによって行われます。 言語ベースの非同期サポートが、通常の制御フロー内での非同期操作の待機を許可することで、コールバックを隠し、コンパイラにより生成されたコードはこの同じ API レベルのサポートを提供します。 Await による実行の中断 Task オブジェクトおよび Task<TResult> オブジェクトの非同期での待機には、C# では await キーワード、Visual Basic では Await 演算子を使用できます。 Task を待っているとき、await 式は型 void になります。 Task<TResult> を待っているとき、await 式は型 TResult に
![タスク ベースの非同期パターンの利用 - .NET](https://cdn-ak-scissors.b.st-hatena.com/image/square/94146f9cb22d996346e1d1073081149ad9dde53a/height=288;version=1;width=512/https%3A%2F%2Flearn.microsoft.com%2Fdotnet%2Fmedia%2Fdot-net-cross-platform.png)