PeekCompletedEventArgs Класс

Определение

Предоставляет данные для события PeekCompleted.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.

public ref class PeekCompletedEventArgs : EventArgs
public class PeekCompletedEventArgs : EventArgs
type PeekCompletedEventArgs = class
    inherit EventArgs
Public Class PeekCompletedEventArgs
Inherits EventArgs
Наследование
PeekCompletedEventArgs

Примеры

В следующем примере кода создается обработчик события для PeekCompleted события, который связывается с делегатом события с PeekCompletedEventHandlerпомощью.The following code example creates an event handler for the PeekCompleted event and associates it with the event delegate by using the PeekCompletedEventHandler. Обработчик событий, MyPeekCompleted, считывает сообщение и записывает его метку на экран.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;
}
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 peek 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 PeekCompleted event.
            myQueue.PeekCompleted += new 
                PeekCompletedEventHandler(MyPeekCompleted);
            
            // Begin the asynchronous peek operation.
            myQueue.BeginPeek();
            
            // Do other work on the current thread.

            return;
        }


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

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

            // Display message information on the screen.
            Console.WriteLine("Message: " + (string)m.Body);

            // Restart the asynchronous peek operation.
            mq.BeginPeek();
            
            return; 
        }
    }
}
Imports System.Messaging





' Provides a container class for the example.
Public Class MyNewQueue



        ' Provides an entry point into the application.
        '		 
        ' This example performs asynchronous peek 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 PeekCompleted event.
            AddHandler myQueue.PeekCompleted, AddressOf _
                MyPeekCompleted

            ' Begin the asynchronous peek operation.
            myQueue.BeginPeek()

            ' Do other work on the current thread.
            Return
        End Sub


        '**************************************************
        ' Provides an event handler for the PeekCompleted
        ' event.
        '**************************************************

        Private Shared Sub MyPeekCompleted(ByVal [source] As _
            [Object], ByVal asyncResult As PeekCompletedEventArgs)

            ' Connect to the queue.
            Dim mq As MessageQueue = CType([source], MessageQueue)

            ' End the asynchronous peek operation.
            Dim m As Message = mq.EndPeek(asyncResult.AsyncResult)

            ' Display message information on the screen.
            Console.WriteLine(("Message: " + CStr(m.Body)))

            ' Restart the asynchronous peek operation.
            mq.BeginPeek()

            Return

        End Sub

End Class

Комментарии

При использовании уведомления о событии для асинхронного просмотра (чтения без удаления) сообщений из очереди необходимо создать метод, обрабатывающий обработку сообщений.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. Код должен вызывать BeginPeek , чтобы начать асинхронную обработку.Your code must call BeginPeek to begin the asynchronous processing. При просмотре сообщения приложение получает уведомление через PeekCompleted событие.When a message is peeked, your application is notified through the PeekCompleted event. Экземпляр PeekCompletedEventArgs передается в делегат события, вызывающий обработчик событий.An instance of PeekCompletedEventArgs is passed into the event delegate that calls your event handler. Данные, связанные с PeekCompleted событием, содержатся в AsyncResult параметре делегата.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используется только с уведомлением о событии.PeekCompletedEventArgs is used only with event notification. Сведения о сравнении обратных вызовов и уведомления о событиях см. в разделе "события и Обратные вызовы» на сайте MSDN.For information comparing callbacks and event notification, see "Events vs. Callbacks" on MSDN.

PeekCompletedEventArgsпредоставляет доступ к сообщению, которое инициировало окончание асинхронной операции просмотра через Message элемент.PeekCompletedEventArgs provides access to the message that initiated the end of the asynchronous peek operation, through the Message member. Это альтернативный доступ к сообщению, который работает практически так же, как и вызов MessageQueue.EndPeek.This is an alternate access to the message, and behaves much the same as a call to MessageQueue.EndPeek.

Свойства

AsyncResult

Получает или задает результат запрошенной асинхронной операции.Gets or sets the result of the asynchronous operation requested.

Message

Получает сообщение, связанное с данной асинхронной операцией считывания.Gets the message associated with the asynchronous peek operation.

Методы

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Применяется к

Дополнительно