PeekCompletedEventArgs Class

 

Provides data for the PeekCompleted event. When your asynchronous peek operation calls an event handler, an instance of this class is passed to the handler.

Namespace:   System.Messaging
Assembly:  System.Messaging (in System.Messaging.dll)

System::Object
  System::EventArgs
    System.Messaging::PeekCompletedEventArgs

public ref class PeekCompletedEventArgs : EventArgs

NameDescription
System_CAPS_pubpropertyAsyncResult

Gets or sets the result of the asynchronous operation requested.

System_CAPS_pubpropertyMessage

Gets the message associated with the asynchronous peek operation.

NameDescription
System_CAPS_pubmethodEquals(Object^)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

When you use event notification to peek (read without removing) messages asynchronously from the queue, you must create a method that handles your message processing. Your code must call BeginPeek to begin the asynchronous processing. When a message is peeked, your application is notified through the PeekCompleted event. An instance of PeekCompletedEventArgs is passed into the event delegate that calls your event handler. The data associated with the PeekCompleted event is contained in the delegate's AsyncResult parameter.

There are two ways to provide notification of event completion: event notification and callbacks. PeekCompletedEventArgs is used only with event notification. For information comparing callbacks and event notification, see "Events vs. Callbacks" on MSDN.

PeekCompletedEventArgs provides access to the message that initiated the end of the asynchronous peek operation, through the Message member. This is an alternate access to the message, and behaves much the same as a call to MessageQueue::EndPeek.

The following code example creates an event handler for the PeekCompleted event and associates it with the event delegate by using the PeekCompletedEventHandler. The event handler, MyPeekCompleted, peeks a message and writes its label to the screen.

#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;

// This example performs asynchronous peek operation
// processing.
//*************************************************
ref class MyNewQueue
{
public:

   // Provides an event handler for the PeekCompleted
   // event.
   static void MyPeekCompleted( Object^ source, PeekCompletedEventArgs^ asyncResult )
   {
      // Connect to the queue.
      MessageQueue^ mq = dynamic_cast<MessageQueue^>(source);

      // End the asynchronous peek operation.
      Message^ m = mq->EndPeek( asyncResult->AsyncResult );

      // Display message information on the screen.
      Console::WriteLine( "Message: {0}", static_cast<String^>(m->Body) );

      // Restart the asynchronous peek operation.
      mq->BeginPeek();
      return;
   }
};

// Provides an entry point into the application.
//         
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 PeekCompleted event.
   myQueue->PeekCompleted += gcnew PeekCompletedEventHandler( MyNewQueue::MyPeekCompleted );

   // Begin the asynchronous peek operation.
   myQueue->BeginPeek();

   // Do other work on the current thread.
   return 0;
}

.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: