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
No menu File, aponte para New, e em seguida, clique em Project.
In the New Project dialog box, create a Visual Basic or Visual C# Windows Application.Nomeie a-MessageQ.
Abra Gerenciador de Servidores .Para obter mais informações, consulte Como: Access and Initialize Server Explorer/Database Explorer.
expandir o Servidores nó.
expandir o nó do servidor local.O nó para o servidor local é identificado pelo nome do computador.
expandir o mensagem Filas nó.
clicar com o botão direito do mouse em particular Filas e, em seguida, clique em Criar fila.
Digite HelpRequest nome da fila.Não selecionar Tornar transacional.
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
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.
conjunto o (Nome) propriedade do MessageQueue componente para helpRequestQueue.
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
From a Windows Forms Guia de do Caixa de ferramentas, adicione os seguintes controles para Form1:
Two Label controls
Two TextBox controls
Três Button controles
One CheckBox control
One DataGridView
Defina as seguintes propriedades dos controles:
Controle
Propriedade
Novo valor
Label1
Nome
Label2
Message (Mensagem)
TextBox1
txtName
(vazio)
TextBox2
txtMessage
(vazio)
true
Button1
sendMessage
Enviar mensagem
Button2
refreshMessages
Atualizar mensagem lista
Button3
purgeMessages
Limpar lista de mensagens
CheckBox1
highPriority
Alta prioridade
DataGridView1
messageGrid
Organize os controles de forma ordenada.
Para enviar uma mensagem para a fila
No designer, clicar duas vezes o sendMessage botão para criar o Click evento manipulador de eventos do Editor de código.
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(); }
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).
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
No designer, clicar duas vezes o refreshMessage botão para criar o Click evento manipulador de eventos do Editor de código.
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
No designer, clicar duas vezes o purgeMessage botão para criar o Click evento manipulador de eventos do Editor de código.
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
Pressione F5 para executar o aplicativo.
Digite seu nome e uma mensagem curta.
clicar Enviar mensagem para enviar a mensagem na fila e atualize a exibição.
clicar Limpar mensagens para excluir todas as mensagens na fila.A lista de mensagens agora está vazia.
Consulte também
Tarefas
Como: Criar instâncias de componente MessageQueue
Como: Enviar mensagens simples