歴史的に見ると、IAsyncResult パターンは、非同期 API を実装する高パフォーマンスのアプローチとして .NET Framework 1.0 で導入されました。ところが、UI スレッドを操作する場合は別の作業が必要になるうえに、適切に実装しにくく、使用するのが困難でした。イベントベースのパターンは、IAsyncResult によって対処されていなかった UI の側面を容易にするため .NET Framework 2.0 で導入され、UI アプリケーションが 1 つの非同期アプリケーションを起動してそれを操作するというシナリオを中心に使用されています。 タスク パターン .NET Framework 4 では、非同期操作を表す方法として、新しい型、System.Threading.Tasks.Task が導入されました。タスクでは、次のように、CPU で実行される通常のコンピュー
![非同期タスク - タスクを使って非同期プログラミングを簡単に](https://cdn-ak-scissors.b.st-hatena.com/image/square/d6e4cb632c7025e9f5e05fd314fbf6dcd6144e8d/height=288;version=1;width=512/https%3A%2F%2Flearn.microsoft.com%2Fen-us%2Fmedia%2Fopen-graph-image.png)