Compartilhar via


Como: Usam o MSMQ no .NET Compact estrutura

Criação de aplicativos .NET Compact estrutura que usam serviço de enfileiramento de mensagens (também conhecido sistema autônomo MSMQ) é semelhante ao processo que é usado no .NET estrutura.Entretanto, Windows CE não oferece suporte a todos os recursos descritos MSMQ no .NET Compact Framework.

Os exemplos de código a seguir mostram como criar uma fila de mensagens, enviar uma mensagem para a fila e recebe uma mensagem da fila, tudo no mesmo dispositivo.Nenhuma conectividade de rede é necessária.Uma classe simples, Order, é usado para criar objetos para serviço de enfileirar de mensagens.

Estes exemplos assumem que o Message Queuing tenha sido instalado no dispositivo.Para obter mais informações sobre como adquirir o componente mensagem enfileirar, consulte MSMQ no .NET Compact Framework.

Para definir a classe Order

  • Adicione a seguinte classe ao seu projeto.

    ' This class represents an object that
    ' is sent to and received from the queue.
    Public Class Order
        Dim ID As Integer
        Dim DTime As DateTime
        Public Property orderID() As Integer
            Get
                Return Me.ID
            End Get
            Set(ByVal value As Integer)
                Me.ID = value
            End Set
        End Property
        Public Property orderTime() As DateTime
            Get
                Return Me.DTime
            End Get
            Set(ByVal value As DateTime)
                Me.DTime = value
            End Set
        End Property
    End Class
    

Para criar a fila de mensagens

  • Adicione o seguinte método ao seu formulário.

    Private Sub CreateQueue()
        ' Determine whether the queue exists.
        If Not MessageQueue.Exists(QPath) Then
            Try
                ' Create the queue if it does not exist.
                myQ = MessageQueue.Create(QPath)
                MessageBox.Show("Queue Created")
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        Else
            MessageBox.Show("Queue Exists")
        End If
    End Sub
    

Para enviar uma mensagem para a fila

  • Adicione o seguinte método ao seu formulário.

    Private Sub SendMessageToQueue()
        ' Create a new order and set values.
        Dim sendOrder As New Order()
        sendOrder.orderID = 23123
        sendOrder.orderTime = DateTime.Now
        Try
            myQ.Send(sendOrder)
            MessageBox.Show("Message Sent")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
    

Para receber uma mensagem da fila

  • Adicione o seguinte método ao seu formulário.

    Private Sub ReceiveMessageFromQueue()
        ' Connect to the a queue on the device.
        myQ = New MessageQueue(QPath)
    
        ' Set the formatter to indicate the body contains an Order.
        Dim targetTypes() As Type
        targetTypes = New Type() {GetType(Order)}
        myQ.Formatter = New XmlMessageFormatter(targetTypes)
        Try
            ' Receive and format the message. 
            Dim myMessage As Message = myQ.Receive()
            Dim myOrder As Order = CType(myMessage.Body, Order)
    
            ' Display message information.
            MessageBox.Show("Order ID: " & _
                myOrder.orderID.ToString() & _
                    Chr(10) & "Sent: " & myOrder.orderTime.ToString())
    
        Catch m As MessageQueueException
            ' Handle Message Queuing exceptions.
            MessageBox.Show(m.Message)
        Catch e As InvalidOperationException
            ' Handle invalid serialization format.
            MessageBox.Show(e.Message)
        End Try
    End Sub
    

Para testar o enfileiramento de mensagens

  1. Adicionar um botão ao formulário, rotulado Enviar, que chama o CreateQueue e SendMessageToQueue métodos.

  2. Adicionar um botão ao formulário, rotulado Receber, que chama o ReceiveMessageFromQueue método.

Compilando o código

Este exemplo requer referências aos seguintes namespaces:

Consulte também

Tarefas

MSMQ Book Ordemer Aplicativo Exemplo

Conceitos

MSMQ no .NET Compact Framework

Tópicos "como" do .NET compact estrutura

Filas de Mensagemens e Backgrounder de tecnologia de Mensagemens