Lire en anglais

Partager via


MessageQueue.ReceiveCompleted Événement

Définition

Se produit lorsqu'un message a été supprimé de la file d'attente. Cet événement est déclenché par l'opération asynchrone BeginReceive().

C#
[System.Messaging.MessagingDescription("MQ_ReceiveCompleted")]
public event System.Messaging.ReceiveCompletedEventHandler ReceiveCompleted;

Type d'événement

Attributs

Exemples

L’exemple de code suivant crée un gestionnaire d’événements nommé MyReceiveCompleted, l’attache au délégué du ReceiveCompleted gestionnaire d’événements et appelle BeginReceive pour lancer une opération de réception asynchrone sur la file d’attente qui se trouve au niveau du chemin d’accès « \myQueue ». Lorsqu’un ReceiveCompleted événement est déclenché, l’exemple reçoit le message et écrit son corps à l’écran. L’exemple appelle BeginReceive ensuite à nouveau pour lancer une nouvelle opération de réception asynchrone.

C#
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;
        }
    }
}

Remarques

BeginReceive est utilisé dans le traitement asynchrone pour déclencher l’événement ReceiveCompleted lorsqu’un message est disponible dans la file d’attente.

EndReceive(IAsyncResult) permet d’effectuer l’opération initiée par un appel à BeginReceive et de jeter un coup d’œil au message lorsque l’événement ReceiveCompleted est déclenché.

Lorsque vous créez un délégué ReceiveCompletedEventHandler, vous identifiez la méthode qui gérera l'événement. Pour associer l'événement au gestionnaire d'événements, ajoutez une instance du délégué à l'événement. Le gestionnaire d'événements est appelé chaque fois qu'un événement se produit, sauf si vous supprimez le délégué. Pour plus d’informations sur les délégués du gestionnaire d’événements, consultez Gestion et déclenchement d’événements.

S’applique à

Produit Versions
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Voir aussi