Compartilhar via


Como: Receber mensagens por programação

Você pode usar um método síncrono chamado Receive para examinar o Sumário de uma fila. Quando você telefonar o Receive método em uma fila, o sistema remove a primeira mensagem da fila e o retorna para você. Esta mensagem não está mais disponível a outros componentes olhando para a fila.

Observação:

Você também pode examinar a primeira mensagem em uma fila sem removê-lo de a fila.Para obter mais informações, consulte Como: Inspecionar mensagens.Você também pode receber mensagens assincronamente.Para obter mais informações, consulte Como: Receber mensagens de forma assíncrona.

Se não houver nenhuma mensagem disponível na fila quando você telefonar o Receive método, o método esperará até que uma mensagem chega na fila. Você pode especificar um período de time limite se desejar que o método aguardar apenas um intervalo especificado.O período de time limite é especificado sistema autônomo um TimeSpan objeto.

Quando você lê mensagens de uma fila, um objeto formatador é usado para serializar e desserializar o Sumário da mensagem sistema autônomo manipular a mensagem.Para obter mais informações, consulte Introdução à leitura e recuperar mensagens.

Há várias formas do Receive método:

  • O método básico com várias sobrecargas que permitem que você especifique itens sistema autônomo períodos de time limite

  • Um método chamado ReceiveById que permite que você recupere uma determinada mensagem por seu identificador

  • Um método chamado ReceiveByCorrelationId que permite recuperar uma mensagem de ID de correlação

Para obter uma explicação sobre IDs de correlação, consulte Armazenamento de diário de fila mensagem.

Ao receber uma mensagem programaticamente

  1. Criar uma instância do MessageQueue componente e conjunto seus Path propriedade para a fila à qual deseja fazer referência. Para obter mais informações, consulte Como: Criar instâncias de componentes do MessageQueue.

  2. Especifica o formatador para usar para recuperar sua mensagem.Para obter mais informações, consulte Como: Especificar o formatador para mensagens recuperadas.

  3. Criar uma instância do Message objeto Isenção mensagem recuperada.

  4. Chamar o Receive método para remover a mensagem da fila.

    Dica:

    Para especificar um time limite para o Receive método, use um TimeSpan objeto para especificar o período de time que você deseja que o método de espera.

    Dim mq As New System.Messaging.MessageQueue(".\MyQueue")
    mq.Send("1", "1")
    Dim m As System.Messaging.Message
    m = mq.Receive(New TimeSpan(0, 0, 3))
    m.Formatter = New _
       System.Messaging.XmlMessageFormatter(New String() _
       {"System.String,mscorlib"})
    Console.WriteLine(m.Body)
    
         System.Messaging.MessageQueue mq =
               new System.Messaging.MessageQueue(".\\MyQueue");
            mq.Send("1", "1");
            System.Messaging.Message m = mq.Receive(new TimeSpan(0, 0, 3));
            m.Formatter = new System.Messaging.XmlMessageFormatter(new string[] { "System.String,mscorlib" });
            Console.WriteLine(m.Body);
    

    Este exemplo de código também está disponível sistema autônomo um Visual Basic Trecho de código IntelliSense. No selecionador de trecho de código, ele está localizado em Windows Brazilian OS > filas de mensagens.Para obter mais informações, consulte Como: Inserir trechos em seu Código (Visual Basic).

Consulte também

Tarefas

Como: Inspecionar mensagens

Como: Receber mensagens de forma assíncrona

Como: Criar instâncias de componentes do MessageQueue

Como: Especificar o formatador para mensagens recuperadas

Outros recursos

Lendo e recebendo mensagens