ReceiveCompletedEventArgs Class
Provides data for the ReceiveCompleted event. When your asynchronous receive operation calls an event handler, an instance of this class is passed to the handler.
Assembly: System.Messaging (in System.Messaging.dll)
The ReceiveCompletedEventArgs type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | AsyncResult | Gets or sets the result of the asynchronous operation requested. |
![]() | Message | Gets the message associated with the asynchronous receive operation. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
When you use event notification to receive messages asynchronously from the queue, you must create a method that handles your message processing. Your code must call BeginReceive to begin the asynchronous processing. When a message is received, your application is notified through the ReceiveCompleted event. An instance of ReceiveCompletedEventArgs is passed into the event delegate that calls your event handler. The data associated with the ReceiveCompleted event is contained in the delegate's AsyncResult parameter.
There are two ways to provide notification of event completion: event notification and callbacks. ReceiveCompletedEventArgs is used only with event notification. For information comparing callbacks and event notification, see "Events vs. Callbacks" on MSDN.
ReceiveCompletedEventArgs provides access to the message that initiated the end of the asynchronous receive operation, through the Message member. This is an alternate access to the message, and behaves much the same as a call to MessageQueue::EndReceive.
The following code example creates an event handler for the ReceiveCompleted event and associates it with the event delegate by using the ReceiveCompletedEventHandler. The event handler, MyReceiveCompleted, receives a message from a queue and writes its body to the screen.
#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; }
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
