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
Adicionar um botão ao formulário, rotulado Enviar, que chama o CreateQueue e SendMessageToQueue métodos.
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