非同期プログラミングのガイドライン
非同期プログラミングは、リモート処理、ASP.NET、Windows フォームなど、共通言語ランタイムの多くの領域でサポートされている機能です。非同期プログラミングは、.NET Framework の中心的な概念です。ここでは、非同期プログラミングのデザイン パターンについて説明します。
これらのガイドラインの背景にある基本的な考え方は、次のとおりです。
- クライアントでは、特定の呼び出しを非同期にするかどうかを判断します。
- クライアントによる非同期の動作をサポートするために、サーバーで追加のプログラミングを行う必要はありません。クライアント ビューとサーバー ビューの差異は、ランタイムで管理できるようにします。結果として、クライアントによる動的呼び出しをサポートするために、サーバーが IDispatch を実装し、大量の作業を実行する必要はなくなります。
- サーバーは、非同期動作を汎用アーキテクチャよりも効率的に実装できるため、またはクライアントによる非同期動作だけをサポートする必要がある場合もあるため、非同期動作を明示的にサポートできるようになっています。このようなサーバーは、このドキュメントで説明されているデザイン パターンに準拠して、非同期操作を公開することをお勧めします。
- タイプ セーフを強制する必要があります。
- 非同期プログラミング モデルをサポートするために必要なサービスは、ランタイムが提供しています。これらのサービスは次のとおりです。
- クリティカル セクションや ReaderWriterLock インスタンスなどの同期プリミティブ。
- WaitForMultipleObjects メソッドをサポートするコンテナなどの同期構成要素体。
- スレッド プール。
- Message オブジェクトや ThreadPool オブジェクトなどの基になるインフラストラクチャへの公開。