ReceiveCompletedEventArgs ReceiveCompletedEventArgs ReceiveCompletedEventArgs ReceiveCompletedEventArgs Class

Определение

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

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

Примеры

В следующем примере кода создается обработчик события для ReceiveCompleted события, который связывается с делегатом события с ReceiveCompletedEventHandlerпомощью.The following code example creates an event handler for the ReceiveCompleted event and associates it with the event delegate by using the ReceiveCompletedEventHandler. Обработчик событий, MyReceiveCompleted, получает сообщение из очереди и записывает его текст на экран.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;
}
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; 
		}
	}
}
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

Комментарии

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

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

Свойства

AsyncResult AsyncResult AsyncResult AsyncResult

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

Message Message Message Message

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

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToString() ToString() ToString() ToString()

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

(Inherited from Object)

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

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