ReceiveCompletedEventArgs Classe
Definição
Fornece dados para o evento de ReceiveCompleted .Provides data for the ReceiveCompleted event. Quando a operação assíncrona de recebimento chama um manipulador de eventos, uma instância dessa classe é passada para o manipulador.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
- Herança
Exemplos
O exemplo de código a seguir cria um manipulador de eventos para o ReceiveCompleted evento e o associa ao delegado de evento usando o ReceiveCompletedEventHandler .The following code example creates an event handler for the ReceiveCompleted event and associates it with the event delegate by using the ReceiveCompletedEventHandler. O manipulador de eventos, MyReceiveCompleted , recebe uma mensagem de uma fila e grava seu corpo na tela.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
'
' 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
End Class
Comentários
Ao usar a notificação de eventos para receber mensagens de forma assíncrona da fila, você deve criar um método que manipule o processamento de mensagens.When you use event notification to receive messages asynchronously from the queue, you must create a method that handles your message processing. Seu código deve chamar BeginReceive para iniciar o processamento assíncrono.Your code must call BeginReceive to begin the asynchronous processing. Quando uma mensagem é recebida, seu aplicativo é notificado pelo ReceiveCompleted evento.When a message is received, your application is notified through the ReceiveCompleted event. Uma instância do ReceiveCompletedEventArgs é passada para o delegado de evento que chama seu manipulador de eventos.An instance of ReceiveCompletedEventArgs is passed into the event delegate that calls your event handler. Os dados associados ao ReceiveCompleted evento estão contidos no parâmetro do delegado AsyncResult .The data associated with the ReceiveCompleted event is contained in the delegate's AsyncResult parameter.
Há duas maneiras de fornecer a notificação de conclusão do evento: notificação de eventos e retornos de chamada.There are two ways to provide notification of event completion: event notification and callbacks. ReceiveCompletedEventArgs é usado somente com notificação de eventos.ReceiveCompletedEventArgs is used only with event notification. Para obter informações comparando retornos de chamada e notificação de eventos, consulte "eventos vs. retornos de chamada" no MSDN.For information comparing callbacks and event notification, see "Events vs. Callbacks" on MSDN.
ReceiveCompletedEventArgs fornece acesso à mensagem que iniciou o final da operação de recebimento assíncrono, por meio do Message membro.ReceiveCompletedEventArgs provides access to the message that initiated the end of the asynchronous receive operation, through the Message member. Esse é um acesso alternativo à mensagem e se comporta de forma muito semelhante a uma chamada para MessageQueue.EndReceive .This is an alternate access to the message, and behaves much the same as a call to MessageQueue.EndReceive.
Propriedades
| AsyncResult |
Obtém ou define o resultado da operação assíncrona solicitada.Gets or sets the result of the asynchronous operation requested. |
| Message |
Obtém a mensagem associada à operação de recebimento assíncrona.Gets the message associated with the asynchronous receive operation. |
Métodos
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object. (Herdado de Object) |
| GetHashCode() |
Serve como a função de hash padrão.Serves as the default hash function. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual.Gets the Type of the current instance. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object. (Herdado de Object) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object. (Herdado de Object) |