メッセージ キューの技術を使用すると、一時的にオフラインになる可能性のある異種ネットワークや異種システム間で、異なる時間に実行される複数のアプリケーションが相互に通信できます。アプリケーションは、キューからのメッセージを送信、受信、またはピーク (削除せずに読み取ること) します。メッセージ キューは Windows 2000 および Windows NT のオプションのコンポーネントです。個別にインストールする必要があります。
MessageQueue クラスは、メッセージ キューのラッパー クラスです。メッセージ キューには複数のバージョンがあり、使用しているオペレーティング システムによって MessageQueue クラスの動作が少し異なります。メッセージ キューの各バージョンにおける固有の機能の詳細については、MSDN のプラットフォーム SDK ドキュメントのトピック「What's New in Message Queuing」を参照してください。
MessageQueue クラスによりメッセージ キューのキューへの参照ができます。MessageQueue コンストラクタでパスを指定して既存のリソースに接続するか、サーバーに新しいキューを作成できます。Send(Object)、Peek、または Receive を呼び出す前に、MessageQueue クラスの新しいインスタンスを既存のキューに関連付ける必要があります。この時点で、Category や Label などのキュー プロパティの操作ができるようになります。
MessageQueue は、同期と非同期の 2 種類のメッセージ取得をサポートします。同期メソッドである Peek と Receive を使用して、プロセス スレッドは新しいメッセージがキューに到達するまで待機する時間間隔を指定します。非同期メソッドである BeginPeek と BeginReceive を使用すると、キューにメッセージが到達するまで、メイン アプリケーションのタスクは別のスレッドで継続します。これらのメソッドは、コールバック オブジェクトと状態オブジェクトを使用してスレッド間で情報を通信することによって動作します。
MessageQueue クラスの新しいインスタンスを作成するときに、新しいメッセージ キューのキューは作成されません。その代わりに、Create(String)、Delete、Purge の各メソッドを使用してサーバーのキューを管理できます。
Purge とは異なり、Create(String) と Delete は static メンバであるため、MessageQueue クラスの新しいインスタンスを作成せずに呼び出すことができます。
MessageQueue オブジェクトの Path プロパティには、表示名、FormatName、Label など、3 種類ある名前のうちの 1 つを設定できます。表示名とは、キューの MachineName プロパティと QueueName プロパティで定義される名前であり、パブリック キューの場合は MachineName \ QueueName、プライベート キューの場合は MachineName \ Private$ \ QueueName です。FormatName プロパティを使用すると、メッセージ キューにオフラインでアクセスできます。キューの Label プロパティを使用してキューの Path を設定することもできます。
MessageQueue のインスタンスの初期プロパティ値の一覧については、MessageQueue コンストラクタのトピックを参照してください。