Demonstra Passo a passo: Criando uma fila e trabalhando com mensagens

Os procedimentos neste tópico demonstram o processo de criação de um mensagem fila usando o MessageQueue componente. Usando esse componente, você enviar mensagens para a fila e recuperar mensagens dela.As mensagens registrar solicitações de Ajuda.

Observação:

Para obter informações de fila em servidor Explorer ou para acessar filas programaticamente, você deverá instalar o O enfileirar de mensagens Componente do Windows no computador cliente.Para adicionar esse serviço, use Adicionar ou remover programas in Painel de controle.

Observação:

Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio.

Para criar um mensagem fila no computador

  1. No menu File, aponte para New, e em seguida, clique em Project.

  2. In the New Project dialog box, create a Visual Basic or Visual C# Windows Application.Nomeie a-MessageQ.

  3. Abra Gerenciador de Servidores .Para obter mais informações, consulte Como: Access and Initialize Server Explorer/Database Explorer.

  4. expandir o Servidores nó.

  5. expandir o nó do servidor local.O nó para o servidor local é identificado pelo nome do computador.

  6. expandir o mensagem Filas nó.

  7. clicar com o botão direito do mouse em particular Filas e, em seguida, clique em Criar fila.

  8. Digite HelpRequest nome da fila.Não selecionar Tornar transacional.

  9. Uma nova fila particular chamado HelpRequest é criada e aparece em servidor Explorer.

    Observação:

    Você também pode exibir a fila recém-criada por meio do Meu computador ícone.clicar com o botão direito do mouse o Meu computador ícone na área de trabalho e, em seguida, clique em Gerenciar.expandir o Serviços e aplicativos nó.expandir o mensagem enfileirar nó e selecionar o Filas particulares pasta.A nova fila é exibido na lista de fila.

Para adicionar um componente mensagem fila para seu mensagem fila

  1. arrastar o HelpRequest fila de do Gerenciador de servidores para seu formulário.Um novo MessageQueue componente é adicionado ao projeto, configurado para o HelpRequest fila.

    The MessageQueue componente é usado para acessar as mensagens contidas na programaticamente a HelpRequest fila criada na seção anterior.

  2. conjunto o (Nome) propriedade do MessageQueue componente para helpRequestQueue.

  3. No Propriedades janela, expandir o MessageReadPropertyFilter nó. conjunto o valor de Prioridade to true. Isso faz com que a prioridade da mensagem a ser recuperado quando uma mensagem é recuperada da fila.

    A interface do usuário que você criar no próximo procedimento permite que o usuário insira algum texto para uma solicitação de ajuda e conjunto a prioridade da mensagem.O usuário clica em um botão Enviar para enviar a solicitação à fila.A DataGridView controle exibe o Sumário da fila. A interface do usuário também contém botões para correnteização a grade com o Sumário corrente da fila e limpar a fila.

Para criar a interface do usuário

  1. From a Windows Forms Guia de do Caixa de ferramentas, adicione os seguintes controles para Form1:

  2. Defina as seguintes propriedades dos controles:

    Controle

    Propriedade

    Novo valor

    Label1

    Text

    Nome

    Label2

    Text

    Message (Mensagem)

    TextBox1

    Name

    txtName

     

    Text

    (vazio)

    TextBox2

    Name

    txtMessage

     

    Text

    (vazio)

     

    Multiline

    true

    Button1

    Name

    sendMessage

     

    Text

    Enviar mensagem

    Button2

    Name

    refreshMessages

     

    Text

    Atualizar mensagem lista

    Button3

    Name

    purgeMessages

     

    Text

    Limpar lista de mensagens

    CheckBox1

    Name

    highPriority

     

    Text

    Alta prioridade

    DataGridView1

    Name

    messageGrid

  3. Organize os controles de forma ordenada.

Para enviar uma mensagem para a fila

  1. No designer, clicar duas vezes o sendMessage botão para criar o Click evento manipulador de eventos do Editor de código.

  2. Adicione código para o método para criar um novo Message instância e envie-o para a fila e para atualizar a exibição de mensagem. Você irá escrever o DisplayMessages método na próxima etapa.

    Private Sub sendMessage_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles sendMessage.Click
       Dim theMessage As System.Messaging.Message = _
          New System.Messaging.Message(Me.txtMessage.Text)
       theMessage.Label = Me.txtName.Text
       If highPriority.Checked Then
          theMessage.Priority = Messaging.MessagePriority.Highest
       Else
          theMessage.Priority = Messaging.MessagePriority.Normal
       End If
       helpRequestQueue.Send(theMessage)
       DisplayMessages()
    End Sub
    
    private void sendMessage_Click(object sender, System.EventArgs e)
    {
       System.Messaging.Message theMessage = 
          new System.Messaging.Message(txtMessage.Text);
       theMessage.Label = txtName.Text; 
       if (highPriority.Checked)
          theMessage.Priority = System.Messaging.MessagePriority.Highest;
       else
          theMessage.Priority = System.Messaging.MessagePriority.Normal;
       helpRequestQueue.Send(theMessage);
       DisplayMessages();
    }
    
  3. Adicione uma referência a System.Data para seu projeto. Adicionar um Declaração Imports (Tipo e Namespace .NET) (Visual Basic) ou usando (Referência C#) demonstrativo para System.Data. Para obter mais informações, consulte Gerenciando referências e Como: Adicionar ou remover referências no Visual Studio (Visual Basic).

  4. Adicionar um método para exibir o Sumário da fila no DataGridView controle. Esse método usa o MessageQueue.GetAllMessages método para recuperar todas as mensagens da fila. sistema autônomo propriedades da fila selecionada são adicionadas a um DataTable objeto, que é usado sistema autônomo a fonte de dados para o DataGridView controle. Para recuperar o texto da mensagem, você deve criar um formatador para a mensagem.

    Private Sub DisplayMessages()
       ' Create a DataTable
       Dim messageTable As New DataTable()
       messageTable.Columns.Add("Name")
       messageTable.Columns.Add("Message")
       messageTable.Columns.Add("Priority")
       Dim messages() As System.Messaging.Message
       messages = helpRequestQueue.GetAllMessages()
       ' Need a formatter to get the text of the message body.
       Dim stringFormatter As System.Messaging.XmlMessageFormatter = _
          New System.Messaging.XmlMessageFormatter(New String() _
          {"System.String"})
       Dim index As Integer
       Dim am As System.Messaging.Message
       ' Add each message to the DataTable
       For index = 0 To messages.Length - 1
          messages(index).Formatter = stringFormatter
          am = messages(index)
          messageTable.Rows.Add(New String() _
             {am.Label, am.Body.ToString(), am.Priority.ToString()})
       Next
    
       messageGrid.DataSource = messageTable
    End Sub
    
    private void DisplayMessages()
    {
       DataTable messageTable = new DataTable();
       messageTable.Columns.Add("Name");
       messageTable.Columns.Add("Message");
       messageTable.Columns.Add("Priority");
       System.Messaging.Message[] messages;
       messages = helpRequestQueue.GetAllMessages();
       System.Messaging.XmlMessageFormatter stringFormatter;
       stringFormatter = new System.Messaging.XmlMessageFormatter(
          new string[] {"System.String"});
       for (int index = 0; index < messages.Length; index++) 
       {
          messages[index].Formatter = stringFormatter;
          messageTable.Rows.Add(new string[] {
             messages[index].Label,
             messages[index].Body.ToString(),
             messages[index].Priority.ToString() });
       }
       messageGrid.DataSource = messageTable;
    

    }

Para exibir o Sumário da fila

  1. No designer, clicar duas vezes o refreshMessage botão para criar o Click evento manipulador de eventos do Editor de código.

  2. Dentro de Click manipulador de eventos, telefonar a DisplayMessages método.

    Private Sub refreshMessages_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles refreshMessages.Click
       DisplayMessages()
    End Sub
    
    private void refreshMessages_Click(object sender, System.EventArgs e)
    {
       DisplayMessages();
    

    }

Para desmarcar o Sumário da fila

  1. No designer, clicar duas vezes o purgeMessage botão para criar o Click evento manipulador de eventos do Editor de código.

  2. Chamar o Purge método para o helpRequestQueuee, em seguida, atualizar o Sumário das DataGridView controle.

    Private Sub purgeMessages_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles purgeMessages.Click
       helpRequestQueue.Purge()
       DisplayMessages()
    End Sub
    
    private void purgeMessages_Click(object sender, System.EventArgs e)
    {
       helpRequestQueue.Purge();
       DisplayMessages();
    

    }

Para testar o aplicativo

  1. Pressione F5 para executar o aplicativo.

  2. Digite seu nome e uma mensagem curta.

  3. clicar Enviar mensagem para enviar a mensagem na fila e atualize a exibição.

  4. clicar Limpar mensagens para excluir todas as mensagens na fila.A lista de mensagens agora está vazia.

Consulte também

Tarefas

Como: Criar filas

Como: Criar instâncias de componente MessageQueue

Como: Enviar mensagens simples

Como: Recuperar mensagens

Conceitos

Introdução a mensagens

Outros recursos

Usando componentes de mensagens