Partilhar via


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

  1. Criar uma matriz do tipo MessageQueue para Isenção resultados da consulta.

  2. 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.

  3. 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

  1. Criar um MessageQueueEnumerator objeto para manter os resultados da consulta.

  2. Chamar o GetMessageQueueEnumerator método na MessageQueue classe.

  3. Para recuperar um subconjunto das filas na rede, defina o MessageQueueCriteria parâmetro para o valor apropriado.

  4. 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();
    

Consulte também

Tarefas

Como: Recuperar mensagens

Conceitos

Coleções de mensagem e fila