ReceiveCompletedEventArgs クラス
アセンブリ: System.Messaging (system.messaging.dll 内)


イベント通知を使ってキューからメッセージを非同期に受信するときは、そのメッセージ処理を行うメソッドを作成する必要があります。その場合は、非同期処理を開始するために BeginReceive を呼び出す必要があります。メッセージが受信されるときに、ReceiveCompleted イベントを通じてアプリケーションに通知が送信されます。イベント ハンドラを呼び出すイベント デリゲートに、ReceiveCompletedEventArgs のインスタンスが渡されます。ReceiveCompleted イベントに関連付けられているデータは、デリゲートの AsyncResult パラメータに格納されます。
イベントの完了を通知させる方法には、イベント通知とコールバックの 2 種類があります。ReceiveCompletedEventArgs はイベント通知でだけ使われます。コールバックとイベント通知の比較については、MSDN ライブラリの「イベントによる通知とコールバックによる通知」を参照してください。
ReceiveCompletedEventArgs は、Message メンバを通じて非同期の受信操作の最終処理を開始したメッセージへのアクセスを実現します。これはメッセージへの代替アクセスであり、MessageQueue.EndReceive を呼び出す場合とほとんど動作は同じです。

ReceiveCompleted イベントのイベント ハンドラを作成し、ReceiveCompletedEventHandler を使用してそのハンドラをイベント デリゲートに関連付けるコード例を次に示します。このイベント ハンドラ (MyReceiveCompleted) は、キューからメッセージを受信してその本文を画面に書き込みます。
Imports System Imports System.Messaging Public Class MyNewQueue ' ' Provides an entry point into the application. ' ' This example performs asynchronous receive operation ' processing. ' Public Shared Sub Main() ' Create an instance of MessageQueue. Set its formatter. Dim myQueue As New MessageQueue(".\myQueue") myQueue.Formatter = New XmlMessageFormatter(New Type() _ {GetType([String])}) ' Add an event handler for the ReceiveCompleted event. AddHandler myQueue.ReceiveCompleted, AddressOf _ MyReceiveCompleted ' Begin the asynchronous receive operation. myQueue.BeginReceive() ' Do other work on the current thread. Return End Sub 'Main ' ' Provides an event handler for the ReceiveCompleted ' event. ' Private Shared Sub MyReceiveCompleted(ByVal [source] As _ [Object], ByVal asyncResult As ReceiveCompletedEventArgs) ' Connect to the queue. Dim mq As MessageQueue = CType([source], MessageQueue) ' End the asynchronous Receive operation. Dim m As Message = mq.EndReceive(asyncResult.AsyncResult) ' Display message information on the screen. Console.WriteLine(("Message: " + CStr(m.Body))) ' Restart the asynchronous Receive operation. mq.BeginReceive() Return End Sub 'MyReceiveCompleted End Class 'MyNewQueue
using System; using System.Messaging; namespace MyProject { /// <summary> /// Provides a container class for the example. /// </summary> public class MyNewQueue { //************************************************** // Provides an entry point into the application. // // This example performs asynchronous receive operation // processing. //************************************************** public static void Main() { // Create an instance of MessageQueue. Set its formatter. MessageQueue myQueue = new MessageQueue(".\\myQueue"); myQueue.Formatter = new XmlMessageFormatter(new Type[] {typeof(String)}); // Add an event handler for the ReceiveCompleted event. myQueue.ReceiveCompleted += new ReceiveCompletedEventHandler(MyReceiveCompleted); // Begin the asynchronous receive operation. myQueue.BeginReceive(); // Do other work on the current thread. return; } //************************************************** // Provides an event handler for the ReceiveCompleted // event. //************************************************** private static void MyReceiveCompleted(Object source, ReceiveCompletedEventArgs asyncResult) { // Connect to the queue. MessageQueue mq = (MessageQueue)source; // End the asynchronous Receive operation. Message m = mq.EndReceive(asyncResult.AsyncResult); // Display message information on the screen. Console.WriteLine("Message: " + (string)m.Body); // Restart the asynchronous Receive operation. mq.BeginReceive(); return; } } }
#using <system.dll> #using <system.messaging.dll> using namespace System; using namespace System::Messaging; ref class MyNewQueue { public: //************************************************* // Provides an event handler for the ReceiveCompleted // event. //************************************************* static void MyReceiveCompleted( Object^ source, ReceiveCompletedEventArgs^ asyncResult ) { // Connect to the queue. MessageQueue^ mq = dynamic_cast<MessageQueue^>(source); // End the asynchronous Receive operation. Message^ m = mq->EndReceive( asyncResult->AsyncResult ); // Display message information on the screen. Console::WriteLine( "Message: {0}", m->Body ); // Restart the asynchronous Receive operation. mq->BeginReceive(); return; } }; //************************************************* // Provides an entry point into the application. // // This example performs asynchronous receive operation // processing. //************************************************* int main() { // Create an instance of MessageQueue. Set its formatter. MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); array<Type^>^p = gcnew array<Type^>(1); p[ 0 ] = String::typeid; myQueue->Formatter = gcnew XmlMessageFormatter( p ); // Add an event handler for the ReceiveCompleted event. myQueue->ReceiveCompleted += gcnew ReceiveCompletedEventHandler( MyNewQueue::MyReceiveCompleted ); // Begin the asynchronous receive operation. myQueue->BeginReceive(); // Do other work on the current thread. return 0; }
package MyProject; import System.*; import System.Messaging.*; /// <summary> /// Provides a container class for the example. /// </summary> public class MyNewQueue { //************************************************** // Provides an entry point into the application. // // This example performs asynchronous receive operation // processing. //************************************************** public static void main(String[] args) { // Create an instance of MessageQueue. Set its formatter. MessageQueue myQueue = new MessageQueue(".\\myQueue"); myQueue.set_Formatter(new XmlMessageFormatter(new Type[] { String.class.ToType() })); // Add an event handler for the ReceiveCompleted event. myQueue.add_ReceiveCompleted(new ReceiveCompletedEventHandler (MyReceiveCompleted)); // Begin the asynchronous receive operation. myQueue.BeginReceive(); // Do other work on the current thread. return; } //main //************************************************** // Provides an event handler for the ReceiveCompleted // event. //************************************************** private static void MyReceiveCompleted(Object source, ReceiveCompletedEventArgs asyncResult) { // Connect to the queue. MessageQueue mq = (MessageQueue)source; // End the asynchronous Receive operation. Message m = mq.EndReceive(asyncResult.get_AsyncResult()); // Display message information on the screen. Console.WriteLine("Message: " + (String)(m.get_Body())); // Restart the asynchronous Receive operation. mq.BeginReceive(); return; } //MyReceiveCompleted } //MyNewQueue

System.EventArgs
System.Messaging.ReceiveCompletedEventArgs


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ReceiveCompletedEventArgs メンバ
System.Messaging 名前空間
MessageQueue クラス
ReceiveCompletedEventHandler
MessageQueue.ReceiveCompleted イベント
BeginReceive
EndReceive
Message クラス
ReceiveCompletedEventArgs プロパティ


関連項目
ReceiveCompletedEventArgs クラスSystem.Messaging 名前空間
MessageQueue クラス
ReceiveCompletedEventHandler
MessageQueue.ReceiveCompleted イベント
BeginReceive
EndReceive
Message クラス
ReceiveCompletedEventArgs メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

関連項目
ReceiveCompletedEventArgs クラスSystem.Messaging 名前空間
MessageQueue クラス
ReceiveCompletedEventHandler
MessageQueue.ReceiveCompleted イベント
BeginReceive
EndReceive
Message クラス
ReceiveCompletedEventArgs メンバ
ReceiveCompleted イベントのデータを提供します。非同期の受信操作がイベント ハンドラを呼び出すと、このクラスのインスタンスがハンドラに渡されます。
ReceiveCompletedEventArgs データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

関連項目
ReceiveCompletedEventArgs クラスSystem.Messaging 名前空間
MessageQueue クラス
ReceiveCompletedEventHandler
MessageQueue.ReceiveCompleted イベント
BeginReceive
EndReceive
Message クラス
- ReceiveCompletedEventArgsのページへのリンク