次の方法で共有


非同期メッセージの処理

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

アプリケーションの処理を拘束せずメッセージを取得する場合はメッセージを非同期的に取得できます。 非同期メッセージ処理、タスクを開始するメソッドが返されますすぐに結果を待つことがなく。 それがもともと何タスクが完了したときに実行するアプリケーションを続行できます。 タスクが完了したら、サーバーできます、アプリケーションに通知メッセージが正常に処理されたこと。

非同期メッセージング操作の 2 種類が、メッセージを非同期的に受信してメッセージを非同期にピークします。 メッセージを非同期的に取得するとする、BeginReceive メソッドと、 EndReceive メソッドを使用して先頭と操作の終了をマークします。 行われる動作次のとおりです。

  • BeginReceive メソッドは、すぐに返しメッセージがキューで使用できる、または、メッセージをピークまたは既に受信しているが存在する場合に ReceiveCompleted を呼び出すイベントを発生させます。

  • ReceiveCompleted イベントは、非同期操作に関する情報を含む型 IAsyncResult オブジェクトを返します。

  • 完了イベントが受信すると後の操作を完了する EndReceive メソッドを呼び出します。 末尾呼び出し内で、メッセージにアクセスしたり、ReceiveCompletedEventArgs クラスにアクセスして取得します。

操作の有効期間を通じて、IAsyncResult オブジェクトにアクセスが通常はいない EndReceive が呼び出されるまで。 ただし、いくつかの非同期操作を開始する場合は、IAsyncResult 値を配列にできのすべての操作またはすべて個別の操作を完了するかどうかを指定します。 ここでは、AsyncWaitHandle オブジェクトの IAsyncResult プロパティを使用する完了した操作を識別します。

Peek Receiveは、 BeginPeek および EndPeek という 2 つの方法を使用して開始と非同期操作の終了ブラケットをします。 BeginPeek 直ちに戻り、 PeekCompleted 呼び出さメッセージが利用可能なイベントを発生させます。 ReceiveCompleted、このイベントは、操作に関する情報を操作できますする IAsyncResult オブジェクトを返します。

さらに、非同期の両方を受信およびピーク操作で、タイムアウトを使用して、メッセージが使用可能になるまで待機する時間を指定できます。 この操作を行ういずれかのメソッドのオーバーロード、フォームを渡すを待機するのに時間を示す TimeSpan オブジェクトを使用します。 ReceiveCompleted PeekCompleted イベントとは、タイムアウト期間が過ぎたが、 IsCompletedIAsyncResult オブジェクト上に設定されて false を示すメッセージがいない対処されている場合発生します。

非同期処理の詳細については、次のページを参照してください。

For

■訳文不要■

メッセージの非同期的に受信する手順

方法 : メッセージの非同期受信します。

BeginPeek メソッドとそのメンバーの概要

BeginPeek

BeginReceive メソッドとそのメンバーの概要

BeginReceive

非同期の操作の通知を受信

2 つの方法を非同期の受信またはピーク操作が正常に完了ときに、通知を受信できるがあります。

  • ReceiveCompleted または PeekCompleted イベントが発生したときに処理するイベント ハンドラーを作成することができます。

  • コールバックを自動的に受信したメッセージを監視し、メッセージが届いたときの処理をアプリケーションに渡す使えます。

イベント通知を使用する場合、メッセージを処理して、処理が終了したら通知を返すメソッドを作成します。 非同期処理を開始するメソッドを呼び出します。 システム作成、イベント ハンドラーを自動的に、デザイナーで MessageQueue コンポーネントをダブルクリックするとします。

注意

イベント通知シナリオや BeginPeekBeginReceive で 1 つのメッセージを返し、[処理を停止します。各メッセージを取得する、BeginPeek または BeginReceive をもう一度呼び出してください。

メッセージを非同期的に処理する代替方法は、コールバックの使用です。 コールバックは、BeginPeekBeginReceive 操作に関連付けるデリゲートを示します。 このシナリオでは、代理人は各メッセージが処理された後に新しいイベント通知の監視を続けます。

参照

処理手順

方法 : メッセージの非同期受信します。

方法 : メッセージをピークします。

方法 : プログラムによるメッセージを受信します。

その他の技術情報

読み取りとメッセージの取得