Como: Recuperar filas
Você pode usar qualquer um dos mecanismos de recuperação estático ou dinâmico para recuperar uma lista de filas.Quando você recupera um estático lista de filas, o sistema retorna um MessageQueue objeto com os resultados da consulta. Quando você recupera uma lista dinâmica de filas, o sistema retorna um MessageQueueEnumerator objeto com os resultados da consulta.
Ao contrário de MessageEnumerator, que retorna mensagens de acordo com sua ordem na fila, o MessageQueueEnumerator não retorna filas em qualquer ordem. Isso ocorre porque filas em uma rede não são definidas na ordem — elas não são ordenadas, isto é, por computador, rótulo ou outros critérios acessível ao usuários.Você pode mover o cursor para a primeira fila da enumeração chamando o MoveNext método. Depois que o enumerador foi inicializado, você pode usar MoveNext para percorrer encaminhar filas restantes.
Não é possível retroceder uma etapa com um MessageQueueEnumerator. Um cursor somente permite a movimentação direta através da enumeração de fila.No entanto, é possível telefonar o Reset método para reiniciar a enumeração e coloque o cursor no início da lista novamente. Como o enumerador é dinâmico, ele pode acessar uma fila que é acrescentada além da posição corrente do cursor.Uma fila que é inserida antes da posição corrente do cursor não pode ser acessada sem primeiro chamar Reset.
Porque o GetPublicQueues, GetPrivateQueuesByMachine, e GetMessageQueueEnumerator métodos são estático, você não precisa criar uma instância do MessageQueue classe antes de chamar o método.
Para recuperar uma lista estática de filas públicas ou privadas
Criar uma matriz do tipo MessageQueue para Isenção resultados da consulta.
telefonar o método apropriado no MessageQueue classe:
Para recuperar todas as filas públicas sem critérioss, telefonar o GetPublicQueues método.
Para recuperar filas públicas com critérios, conjunto o Criteria parâmetro para o valor apropriado e a telefonar a GetPrivateQueuesByMachine método.
Para recuperar somente sistema autônomo filas públicas que compartilham uma categoria GUID, telefonar o GetPublicQueuesByCategory método e especificar a GUID da categoria sistema autônomo parâmetro.
Para recuperar somente sistema autônomo filas públicas que compartilham um rótulo telefonar o GetPublicQueuesByLabel método e especifique o rótulo sistema autônomo um parâmetro.
Para recuperar somente sistema autônomo filas públicas em uma máquina específica, telefonar o GetPublicQueuesByMachine método e especifique o nome do computador sistema autônomo um parâmetro.
Atribua os resultados à matriz.
Por exemplo, o código a seguir mostra como você pode usar uma caixa de listagem para exibir o rótulo de todas as filas públicas recuperados na computador local:
Private Sub button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles button1.Click Dim mqlist() As System.Messaging.MessageQueue Dim i As Integer ' Retrieve queues on the local machine. mqlist = System.Messaging.MessageQueue.GetPublicQueuesByMachine(".") ' Clear the current contents of the list. Me.ListBox1.Items.Clear() ' Display the results. For i = 0 To mqlist.Length - 1 Me.ListBox1.Items.Add(mqlist(i).Path) Next End Sub
private void button1_Click(System.Object sender, System.EventArgs e) { System.Messaging.MessageQueue[] mqlist; // Retrieve public queues. mqlist = System.Messaging.MessageQueue.GetPublicQueuesByMachine( "."); // Clear the current contents of the list. this.listBox1.Items.Clear(); // Display the results. for (int i = 0; i < mqlist.Length; i++) { this.listBox1.Items.Add(mqlist[i].Path); } }
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).
Para recuperar uma lista dinâmica de filas
Criar um MessageQueueEnumerator objeto para manter os resultados da consulta.
Chamar o GetMessageQueueEnumerator método na MessageQueue classe.
Para recuperar um subconjunto das filas na rede, defina o MessageQueueCriteria parâmetro para o valor apropriado.
conjunto os resultados para o MessageQueueEnumerator objeto criado por você. Seu código pode ter esta aparência:
Dim mqEnum As System.Messaging.MessageQueueEnumerator mqEnum = System.Messaging.MessageQueue.GetMessageQueueEnumerator()
System.Messaging.MessageQueueEnumerator mqEnum; mqEnum = System.Messaging.MessageQueue.GetMessageQueueEnumerator();