非同期プログラミングのデザイン パターン

通常、非同期操作は、大きなサイズのファイルを開く、リモート コンピュータに接続する、データベースに問い合わせるなど、完了するまでに時間のかかる可能性があるタスクを実行するために使用します。非同期操作は、メイン アプリケーション スレッドとは別個のスレッドで実行されます。アプリケーションが非同期操作を実行するメソッドを呼び出した場合、アプリケーションは、非同期メソッドがタスクを実行している間も動作を継続できます。

.NET Framework には、非同期操作のデザイン パターンとして次の 2 つが用意されています。

  • IAsyncResult オブジェクトを使用する非同期操作

  • イベントを使用する非同期操作

IAsyncResult デザイン パターンでは、さまざまなプログラミング モデルを使用できますが、習得するのに手間がかかり、ほとんどのアプリケーションで必要とされる以上の柔軟性を提供します。クラス ライブラリをデザインするときには、可能であれば、イベント ドリブン モデルを使用して非同期メソッドを実装することをお勧めします。場合によっては、IAsyncResult ベース モデルを実装する必要がある場合もあります。

イベントを使用する非同期操作については、「イベントベースの非同期パターンの概要」を参照してください。

非同期プログラミングの機能は、次を始めとする .NET Framework のさまざまな機能によってサポートされます。

  • ファイル IO、ストリーム IO、ソケット IO

  • ネットワーク

  • リモート チャネル (HTTP、TCP) およびプロキシ

  • ASP.NET を使用して作成された XML Web サービス

  • ASP.NET Web フォーム

  • MessageQueue クラスを使用したメッセージ キュー

このセクションの内容

  • 非同期プログラミングの概要
    IAsyncResult ベースの非同期デザイン パターンについて説明します。このデザイン パターンは、非同期操作を処理するための柔軟なプログラミング モデルを提供します。

参照

関連項目

AsyncCallback
IAsyncResult
Delegate
AsyncOperationManager
BackgroundWorker

概念

非同期ファイル I/O