.NETの世界での「非同期」とは、非同期処理(主に非同期I/O)を効率よく、しかも最小のプログラミングコストで実現するため、コンパイラとライブラリの補助で実現する機能の事です。C#やVB.netにおいて、「async-await」キーワードを使って、ほぼ従来通りのフローコーデイングを実現可能で、コンパイラが自動的に複雑なステート管理に展開してくれるため、人的なエラーを起こしにくく、コード量も飛躍的に削減出来ます。 これまでの非同期処理のセオリーは、プロセスレベルやスレッドレベルで、いわゆる「ワーカープロセス・スレッド」を使ってオフロード処理する方法が主流でした。この方法の問題点は、メインの処理とワーカーとの間で行わなければならない同期処理や、ワーカー処理がI/Oのブロッキングを保持するためだけにCPUリソースを消費(プロセスやスレッドを使う)してしまう事でした。.NETの非同期処理は、非同
![技術解説 – 非同期](https://cdn-ak-scissors.b.st-hatena.com/image/square/8d71ff5111e05619a10d29bb40d7aebaa75c8fbc/height=288;version=1;width=512/https%3A%2F%2Fs0.wp.com%2Fi%2Fblank.jpg)