MessageQueue Classe

Definição

Dá acesso a uma fila num servidor de Fila de Mensagens.

public ref class MessageQueue : System::ComponentModel::Component, System::Collections::IEnumerable
[System.ComponentModel.TypeConverter(typeof(System.Messaging.Design.MessageQueueConverter))]
public class MessageQueue : System.ComponentModel.Component, System.Collections.IEnumerable
[System.ComponentModel.TypeConverter(typeof(System.Messaging.Design.MessageQueueConverter))]
[System.Messaging.MessagingDescription("MessageQueueDesc")]
public class MessageQueue : System.ComponentModel.Component, System.Collections.IEnumerable
[<System.ComponentModel.TypeConverter(typeof(System.Messaging.Design.MessageQueueConverter))>]
type MessageQueue = class
    inherit Component
    interface IEnumerable
[<System.ComponentModel.TypeConverter(typeof(System.Messaging.Design.MessageQueueConverter))>]
[<System.Messaging.MessagingDescription("MessageQueueDesc")>]
type MessageQueue = class
    inherit Component
    interface IEnumerable
Public Class MessageQueue
Inherits Component
Implements IEnumerable
Herança
Atributos
Implementações

Exemplos

O exemplo de código seguinte cria novos MessageQueue objetos usando vários tipos de sintaxe de nomes de caminho. Em cada caso, envia uma mensagem para a fila cujo caminho está definido no construtor.

#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;
ref class MyNewQueue
{
public:

   // References public queues.
   void SendPublic()
   {
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );
      myQueue->Send( "Public queue by path name." );
      return;
   }


   // References private queues.
   void SendPrivate()
   {
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\Private$\\myQueue" );
      myQueue->Send( "Private queue by path name." );
      return;
   }


   // References queues by label.
   void SendByLabel()
   {
      MessageQueue^ myQueue = gcnew MessageQueue( "Label:TheLabel" );
      myQueue->Send( "Queue by label." );
      return;
   }


   // References queues by format name.
   void SendByFormatName()
   {
      MessageQueue^ myQueue = gcnew MessageQueue( "FormatName:Public=5A5F7535-AE9A-41d4 -935C-845C2AFF7112" );
      myQueue->Send( "Queue by format name." );
      return;
   }


   // References computer journal queues.
   void MonitorComputerJournal()
   {
      MessageQueue^ computerJournal = gcnew MessageQueue( ".\\Journal$" );
      while ( true )
      {
         Message^ journalMessage = computerJournal->Receive();
         
         // Process the journal message.
      }
   }


   // References queue journal queues.
   void MonitorQueueJournal()
   {
      MessageQueue^ queueJournal = gcnew MessageQueue( ".\\myQueue\\Journal$" );
      while ( true )
      {
         Message^ journalMessage = queueJournal->Receive();
         
         // Process the journal message.
      }
   }


   // References dead-letter queues.
   void MonitorDeadLetter()
   {
      MessageQueue^ deadLetter = gcnew MessageQueue( ".\\DeadLetter$" );
      while ( true )
      {
         Message^ deadMessage = deadLetter->Receive();
         
         // Process the dead-letter message.
      }
   }


   // References transactional dead-letter queues.
   void MonitorTransactionalDeadLetter()
   {
      MessageQueue^ TxDeadLetter = gcnew MessageQueue( ".\\XactDeadLetter$" );
      while ( true )
      {
         Message^ txDeadLetter = TxDeadLetter->Receive();
         
         // Process the transactional dead-letter message.
      }
   }

};


//*************************************************
// Provides an entry point into the application.
//         
// This example demonstrates several ways to set
// a queue's path.
//*************************************************
int main()
{
   
   // Create a new instance of the class.
   MyNewQueue^ myNewQueue = gcnew MyNewQueue;
   myNewQueue->SendPublic();
   myNewQueue->SendPrivate();
   myNewQueue->SendByLabel();
   myNewQueue->SendByFormatName();
   myNewQueue->MonitorComputerJournal();
   myNewQueue->MonitorQueueJournal();
   myNewQueue->MonitorDeadLetter();
   myNewQueue->MonitorTransactionalDeadLetter();
   return 0;
}
using System;
using System.Messaging;

namespace MyProject
{
    /// <summary>
    /// Provides a container class for the example.
    /// </summary>
    public class MyNewQueue
    {

        //**************************************************
        // Provides an entry point into the application.
        //		
        // This example demonstrates several ways to set
        // a queue's path.
        //**************************************************

        public static void Main()
        {
            // Create a new instance of the class.
            MyNewQueue myNewQueue = new MyNewQueue();

            myNewQueue.SendPublic();
            myNewQueue.SendPrivate();
            myNewQueue.SendByLabel();
            myNewQueue.SendByFormatName();
            myNewQueue.MonitorComputerJournal();
            myNewQueue.MonitorQueueJournal();
            myNewQueue.MonitorDeadLetter();
            myNewQueue.MonitorTransactionalDeadLetter();

            return;
        }
        
        // References public queues.
        public void SendPublic()
        {
            MessageQueue myQueue = new MessageQueue(".\\myQueue");
            myQueue.Send("Public queue by path name.");

            return;
        }

        // References private queues.
        public void SendPrivate()
        {
            MessageQueue myQueue = new
                MessageQueue(".\\Private$\\myQueue");
            myQueue.Send("Private queue by path name.");

            return;
        }

        // References queues by label.
        public void SendByLabel()
        {
            MessageQueue myQueue = new MessageQueue("Label:TheLabel");
            myQueue.Send("Queue by label.");

            return;
        }

        // References queues by format name.
        public void SendByFormatName()
        {
            MessageQueue myQueue = new
                MessageQueue("FormatName:Public=5A5F7535-AE9A-41d4" +
                "-935C-845C2AFF7112");
            myQueue.Send("Queue by format name.");

            return;
        }

        // References computer journal queues.
        public void MonitorComputerJournal()
        {
            MessageQueue computerJournal = new
                MessageQueue(".\\Journal$");
            while(true)
            {
                Message journalMessage = computerJournal.Receive();
                // Process the journal message.
            }
        }

        // References queue journal queues.
        public void MonitorQueueJournal()
        {
            MessageQueue queueJournal = new
                MessageQueue(".\\myQueue\\Journal$");
            while(true)
            {
                Message journalMessage = queueJournal.Receive();
                // Process the journal message.
            }
        }
        
        // References dead-letter queues.
        public void MonitorDeadLetter()
        {
            MessageQueue deadLetter = new
                MessageQueue(".\\DeadLetter$");
            while(true)
            {
                Message deadMessage = deadLetter.Receive();
                // Process the dead-letter message.
            }
        }

        // References transactional dead-letter queues.
        public void MonitorTransactionalDeadLetter()
        {
            MessageQueue TxDeadLetter = new
                MessageQueue(".\\XactDeadLetter$");
            while(true)
            {
                Message txDeadLetter = TxDeadLetter.Receive();
                // Process the transactional dead-letter message.
            }
        }
    }
}
Imports System.Messaging

Public Class MyNewQueue


        
        ' Provides an entry point into the application.
        '		 
        ' This example demonstrates several ways to set
        ' a queue's path.
        

        Public Shared Sub Main()

            ' Create a new instance of the class.
            Dim myNewQueue As New MyNewQueue()

            myNewQueue.SendPublic()
            myNewQueue.SendPrivate()
            myNewQueue.SendByLabel()
            myNewQueue.SendByFormatName()
            myNewQueue.MonitorComputerJournal()
            myNewQueue.MonitorQueueJournal()
            myNewQueue.MonitorDeadLetter()
            myNewQueue.MonitorTransactionalDeadLetter()

            Return

        End Sub


        ' References public queues.
        Public Sub SendPublic()

            Dim myQueue As New MessageQueue(".\myQueue")
            myQueue.Send("Public queue by path name.")

            Return

        End Sub


        ' References private queues.
        Public Sub SendPrivate()

            Dim myQueue As New MessageQueue(".\Private$\myQueue")
            myQueue.Send("Private queue by path name.")

            Return

        End Sub


        ' References queues by label.
        Public Sub SendByLabel()

            Dim myQueue As New MessageQueue("Label:TheLabel")
            myQueue.Send("Queue by label.")

            Return

        End Sub


        ' References queues by format name.
        Public Sub SendByFormatName()

            Dim myQueue As New _
                MessageQueue("FormatName:Public=" + _
                    "5A5F7535-AE9A-41d4-935C-845C2AFF7112")
            myQueue.Send("Queue by format name.")

            Return

        End Sub


        ' References computer journal queues.
        Public Sub MonitorComputerJournal()

            Dim computerJournal As New MessageQueue(".\Journal$")

            While True

                Dim journalMessage As Message = _
                    computerJournal.Receive()

                ' Process the journal message.

            End While

            Return
        End Sub


        ' References queue journal queues.
        Public Sub MonitorQueueJournal()

            Dim queueJournal As New _
                            MessageQueue(".\myQueue\Journal$")

            While True

                Dim journalMessage As Message = _
                    queueJournal.Receive()

                ' Process the journal message.

            End While

            Return
        End Sub


        ' References dead-letter queues.
        Public Sub MonitorDeadLetter()
            Dim deadLetter As New MessageQueue(".\DeadLetter$")

            While True

                Dim deadMessage As Message = deadLetter.Receive()

                ' Process the dead-letter message.

            End While

            Return

        End Sub


        ' References transactional dead-letter queues.
        Public Sub MonitorTransactionalDeadLetter()

            Dim TxDeadLetter As New MessageQueue(".\XactDeadLetter$")

            While True

                Dim txDeadLetterMessage As Message = _
                    TxDeadLetter.Receive()

                ' Process the transactional dead-letter message.

            End While

            Return

        End Sub

End Class

O seguinte exemplo de código envia uma mensagem para uma fila e recebe uma mensagem de uma fila, usando uma classe específica da aplicação chamada Order.

#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;

// This class represents an object the following example 
// sends to a queue and receives from a queue.
ref class Order
{
public:
   int orderId;
   DateTime orderTime;
};


/// <summary>
/// Provides a container class for the example.
/// </summary>
ref class MyNewQueue
{
public:

   //*************************************************
   // Sends an Order to a queue.
   //*************************************************
   void SendMessage()
   {
      // Create a new order and set values.
      Order^ sentOrder = gcnew Order;
      sentOrder->orderId = 3;
      sentOrder->orderTime = DateTime::Now;

      // Connect to a queue on the local computer.
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );

      // Send the Order to the queue.
      myQueue->Send( sentOrder );
      return;
   }

   //*************************************************
   // Receives a message containing an Order.
   //*************************************************
   void ReceiveMessage()
   {
      // Connect to the a queue on the local computer.
      MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );

      // Set the formatter to indicate body contains an Order.
      array<Type^>^p = gcnew array<Type^>(1);
      p[ 0 ] = Order::typeid;
      myQueue->Formatter = gcnew XmlMessageFormatter( p );
      try
      {
         // Receive and format the message. 
         Message^ myMessage = myQueue->Receive();
         Order^ myOrder = static_cast<Order^>(myMessage->Body);

         // Display message information.
         Console::WriteLine( "Order ID: {0}", myOrder->orderId );
         Console::WriteLine( "Sent: {0}", myOrder->orderTime );
      }
      catch ( MessageQueueException^ ) 
      {
         // Handle Message Queuing exceptions.
      }
      // Handle invalid serialization format.
      catch ( InvalidOperationException^ e ) 
      {
         Console::WriteLine( e->Message );
      }

      // Catch other exceptions as necessary.
      return;
   }
};

//*************************************************
// Provides an entry point into the application.
//         
// This example sends and receives a message from
// a queue.
//*************************************************
int main()
{
   // Create a new instance of the class.
   MyNewQueue^ myNewQueue = gcnew MyNewQueue;

   // Send a message to a queue.
   myNewQueue->SendMessage();

   // Receive a message from a queue.
   myNewQueue->ReceiveMessage();
   return 0;
}
using System;
using System.Messaging;

namespace MyProject
{

    // This class represents an object the following example
    // sends to a queue and receives from a queue.
    public class Order
    {
        public int orderId;
        public DateTime orderTime;
    };	

    /// <summary>
    /// Provides a container class for the example.
    /// </summary>
    public class MyNewQueue
    {

        //**************************************************
        // Provides an entry point into the application.
        //		
        // This example sends and receives a message from
        // a queue.
        //**************************************************

        public static void Main()
        {
            // Create a new instance of the class.
            MyNewQueue myNewQueue = new MyNewQueue();

            // Send a message to a queue.
            myNewQueue.SendMessage();

            // Receive a message from a queue.
            myNewQueue.ReceiveMessage();

            return;
        }

        //**************************************************
        // Sends an Order to a queue.
        //**************************************************
        
        public void SendMessage()
        {
            
            // Create a new order and set values.
            Order sentOrder = new Order();
            sentOrder.orderId = 3;
            sentOrder.orderTime = DateTime.Now;

            // Connect to a queue on the local computer.
            MessageQueue myQueue = new MessageQueue(".\\myQueue");

            // Send the Order to the queue.
            myQueue.Send(sentOrder);

            return;
        }

        //**************************************************
        // Receives a message containing an Order.
        //**************************************************
        
        public  void ReceiveMessage()
        {
            // Connect to the a queue on the local computer.
            MessageQueue myQueue = new MessageQueue(".\\myQueue");

            // Set the formatter to indicate body contains an Order.
            myQueue.Formatter = new XmlMessageFormatter(new Type[]
                {typeof(MyProject.Order)});
            
            try
            {
                // Receive and format the message.
                Message myMessage =	myQueue.Receive();
                Order myOrder = (Order)myMessage.Body;

                // Display message information.
                Console.WriteLine("Order ID: " +
                    myOrder.orderId.ToString());
                Console.WriteLine("Sent: " +
                    myOrder.orderTime.ToString());
            }
            
            catch (MessageQueueException)
            {
                // Handle Message Queuing exceptions.
            }

            // Handle invalid serialization format.
            catch (InvalidOperationException e)
            {
                Console.WriteLine(e.Message);
            }
            
            // Catch other exceptions as necessary.

            return;
        }
    }
}
Imports System.Messaging

    ' This class represents an object the following example 
    ' sends to a queue and receives from a queue.
    Public Class Order
        Public orderId As Integer
        Public orderTime As DateTime
    End Class


   
    Public Class MyNewQueue


        '
        ' Provides an entry point into the application.
        '		 
        ' This example sends and receives a message from
        ' a qeue.
        '

        Public Shared Sub Main()

            ' Create a new instance of the class.
            Dim myNewQueue As New MyNewQueue()

            ' Send a message to a queue.
            myNewQueue.SendMessage()

            ' Receive a message from a queue.
            myNewQueue.ReceiveMessage()

            Return

        End Sub


        '
        ' Sends an Order to a queue.
        '

        Public Sub SendMessage()

            ' Create a new order and set values.
            Dim sentOrder As New Order()
            sentOrder.orderId = 3
            sentOrder.orderTime = DateTime.Now

            ' Connect to a queue on the local computer.
            Dim myQueue As New MessageQueue(".\myQueue")

            ' Send the Order to the queue.
            myQueue.Send(sentOrder)

            Return

        End Sub


        '
        ' Receives a message containing an Order.
        '

        Public Sub ReceiveMessage()

            ' Connect to the a queue on the local computer.
            Dim myQueue As New MessageQueue(".\myQueue")

            ' Set the formatter to indicate the body contains an Order.
            myQueue.Formatter = New XmlMessageFormatter(New Type() _
                {GetType(Order)})

            Try

                ' Receive and format the message. 
                Dim myMessage As Message = myQueue.Receive()
                Dim myOrder As Order = CType(myMessage.Body, Order)

                ' Display message information.
                Console.WriteLine(("Order ID: " + _
                    myOrder.orderId.ToString()))
                Console.WriteLine(("Sent: " + _
                    myOrder.orderTime.ToString()))

            Catch m As MessageQueueException
                ' Handle Message Queuing exceptions.

            Catch e As InvalidOperationException
                ' Handle invalid serialization format.
                Console.WriteLine(e.Message)


                ' Catch other exceptions as necessary.

            End Try

            Return

        End Sub

End Class

Observações

A tecnologia de Fila de Mensagens permite que aplicações em execução em diferentes momentos comuniquem através de redes heterogéneas e sistemas que podem estar temporariamente offline. As aplicações enviam, recebem ou espreitam (leem sem remover) mensagens das filas. A Fila de Mensagens é um componente opcional do Windows 2000 e do Windows NT, e deve ser instalado separadamente.

A MessageQueue classe é um wrapper em torno da Fila de Mensagens. Existem várias versões do Message Queuing, e usar a MessageQueue classe pode resultar em comportamentos ligeiramente diferentes, dependendo do sistema operativo que está a usar.

A MessageQueue classe fornece uma referência a uma fila de Fila de Mensagens. Pode especificar um caminho no MessageQueue construtor para se ligar a um recurso existente, ou pode criar uma nova fila no servidor. Antes de poder chamar Send(Object), Peek, ou Receive, deve associar a nova instância da MessageQueue classe a uma fila existente. Nesse ponto, pode manipular as propriedades da fila como Category e Label.

MessageQueue suporta dois tipos de recuperação de mensagens: síncrona e assíncrona. Os métodos Peek síncronos e Receive, fazem com que o thread do processo aguarde um intervalo de tempo especificado para que uma nova mensagem chegue à fila. Os métodos assíncronos, BeginPeek e BeginReceive, permitem que as tarefas principais da aplicação continuem numa thread separada até que uma mensagem chegue à fila. Estes métodos funcionam usando objetos de callback e objetos de estado para comunicar informação entre threads.

Quando crias uma nova instância da MessageQueue classe, não estás a criar uma nova fila de Fila de Mensagens. Em vez disso, pode usar os Create(String)métodos , Delete(String), e Purge para gerir filas no servidor.

Ao contrário de Purge, Create(String) e Delete(String) são static membros, por isso podes chamá-los sem criar uma nova instância da MessageQueue classe.

Pode definir a MessageQueue propriedade do Path objeto com um de três nomes: o nome amigo, o FormatName, ou o Label. O nome amigável, que é definido pelas filas MachineName e QueueName propriedades, é MachineNameQueueName\para uma fila pública eQueueNameMachineName\Private$\para uma fila privada. A FormatName propriedade permite acesso offline a filas de mensagens. Por fim, podes usar a propriedade da Label fila para definir a fila Path.

Para obter uma lista de valores das propriedades iniciais de uma instância de MessageQueue, consulte o construtor MessageQueue.

Construtores

Name Description
MessageQueue()

Inicializa uma nova instância da MessageQueue classe. Depois de o construtor sem parâmetros inicializar a nova instância, deve definir a propriedade da Path instância antes de poder usá-la.

MessageQueue(String, Boolean, Boolean, QueueAccessMode)

Inicializa uma nova instância da MessageQueue classe.

MessageQueue(String, Boolean, Boolean)

Inicializa uma nova instância da MessageQueue classe.

MessageQueue(String, Boolean)

Inicializa uma nova instância da MessageQueue classe que faz referência à fila de Fila de Mensagens no caminho especificado e com a restrição de acesso de leitura especificada.

MessageQueue(String, QueueAccessMode)

Inicializa uma nova instância da MessageQueue classe.

MessageQueue(String)

Inicializa uma nova instância da MessageQueue classe que faz referência à fila de Fila de Mensagens no caminho especificado.

Campos

Name Description
InfiniteQueueSize

Especifica que não existe restrição de tamanho para uma fila.

InfiniteTimeout

Especifica que não existe time-out para métodos que espreitem ou recebam mensagens.

Propriedades

Name Description
AccessMode

Recebe um valor que indica o modo de acesso da fila.

Authenticate

Recebe ou define um valor que indica se a fila aceita apenas mensagens autenticadas.

BasePriority

Recebe ou define a prioridade base que a Fila de Mensagens usa para encaminhar as mensagens de uma fila pública pela rede.

CanRaiseEvents

Obtém um valor que indica se o componente pode gerar um evento.

(Herdado de Component)
CanRead

Obtém um valor que indica se o MessageQueue pode ser lido.

CanWrite

Obtém um valor que indica se o MessageQueue pode ser escrito para.

Category

Recebe ou define a categoria da fila.

Container

Obtém o IContainer que contém o Component.

(Herdado de Component)
CreateTime

Obtém a hora e a data em que a fila foi criada na Fila de Mensagens.

DefaultPropertiesToSend

Obtém ou define os valores das propriedades da mensagem a serem usados por defeito quando a aplicação envia mensagens para a fila.

DenySharedReceive

Recebe ou define um valor que indica se este MessageQueue tem acesso exclusivo para receber mensagens da fila de Fila de Mensagens.

DesignMode

Obtém um valor que indica se o Component está atualmente em modo de design.

(Herdado de Component)
EnableConnectionCache

Recebe ou define um valor que indica se uma cache de ligações será mantida pela aplicação.

EncryptionRequired

Recebe ou define um valor que indica se a fila aceita apenas mensagens não privadas (não encriptadas).

Events

Obtém a lista de gestores de eventos que estão ligados a isto Component.

(Herdado de Component)
FormatName

Recebe o nome único da fila que a Message Queuing gerou na altura da criação da fila.

Formatter

Obtém ou define o formatador usado para serializar um objeto em ou desserializar um objeto a partir do corpo de uma mensagem lida ou escrita na fila.

Id

Obtém o identificador único de Fila de Mensagens da fila.

Label

Recebe ou define a descrição da fila.

LastModifyTime

Obtém a última vez que as propriedades de uma fila foram modificadas.

MachineName

Obtém ou define o nome do computador onde está localizada a fila de Fila de Mensagens.

MaximumJournalSize

Obtém ou define o tamanho máximo da fila do diário.

MaximumQueueSize

Obtém ou define o tamanho máximo da fila.

MessageReadPropertyFilter

Recebe ou define o filtro de propriedades para receber ou espreitar mensagens.

MulticastAddress

Obtém ou define o endereço multicast associado à fila.

Path

Obtém ou definem o percurso da fila. Definir o Path faz com que aponte MessageQueue para uma nova fila.

QueueName

Recebe ou define o nome amigo que identifica a fila.

ReadHandle

Obtém o handle nativo usado para ler mensagens da fila de mensagens.

Site

Obtém ou define o ISite do Component.

(Herdado de Component)
SynchronizingObject

Obtém ou define o objeto que faz o marshal da chamada do handler de eventos resultante de um ReceiveCompleted evento ou PeekCompleted .

Transactional

Recebe um valor que indica se a fila aceita apenas transações.

UseJournalQueue

Recebe ou define um valor que indica se as mensagens recebidas são copiadas para a fila de diário.

WriteHandle

Obtém o handle nativo usado para enviar mensagens para a fila de mensagens.

Métodos

Name Description
BeginPeek()

Inicia uma operação de peek assíncrona sem time-out. A operação só está concluída quando uma mensagem fica disponível na fila.

BeginPeek(TimeSpan, Cursor, PeekAction, Object, AsyncCallback)

Inicia uma operação peek assíncrona com um time-out especificado e que utiliza um cursor especificado, uma ação peek específica e um objeto de estado especificado. O objeto de estado fornece informação associada ao longo de toda a vida útil da operação. Esta sobrecarga recebe notificação, através de um callback, da identidade do gestor de eventos da operação. A operação só está concluída até que uma mensagem fique disponível na fila ou ocorra o time-out.

BeginPeek(TimeSpan, Object, AsyncCallback)

Inicia uma operação peek assíncrona que tem um time-out especificado e um objeto de estado especificado, que fornece informação associada ao longo de toda a vida útil da operação. Esta sobrecarga recebe notificação, através de um callback, da identidade do gestor de eventos da operação. A operação só está concluída até que uma mensagem fique disponível na fila ou ocorra o time-out.

BeginPeek(TimeSpan, Object)

Inicia uma operação peek assíncrona que tem um time-out especificado e um objeto de estado especificado, que fornece informação associada ao longo de toda a vida útil da operação. A operação só está concluída até que uma mensagem fique disponível na fila ou ocorra o time-out.

BeginPeek(TimeSpan)

Inicia uma operação de peek assíncrona com um time-out especificado. A operação só está concluída até que uma mensagem fique disponível na fila ou ocorra o time-out.

BeginReceive()

Inicia uma operação de receção assíncrona sem time-out. A operação só está concluída quando uma mensagem fica disponível na fila.

BeginReceive(TimeSpan, Cursor, Object, AsyncCallback)

Inicia uma operação de receção assíncrona que tem um time-out especificado e utiliza um cursor e um objeto de estado especificados. O objeto de estado fornece informação associada ao longo de toda a vida útil da operação. Esta sobrecarga recebe notificação, através de um callback, da identidade do gestor de eventos da operação. A operação só está concluída até que uma mensagem fique disponível na fila ou ocorra o time-out.

BeginReceive(TimeSpan, Object, AsyncCallback)

Inicia uma operação de receção assíncrona que tem um time-out especificado e um objeto de estado especificado, que fornece informação associada ao longo de toda a vida útil da operação. Esta sobrecarga recebe notificação, através de um callback, da identidade do gestor de eventos da operação. A operação só está concluída até que uma mensagem fique disponível na fila ou ocorra o time-out.

BeginReceive(TimeSpan, Object)

Inicia uma operação de receção assíncrona que tem um time-out especificado e um objeto de estado especificado, que fornece informação associada ao longo de toda a vida útil da operação. A operação só está concluída até que uma mensagem fique disponível na fila ou ocorra o time-out.

BeginReceive(TimeSpan)

Inicia uma operação de receção assíncrona com um tempo de espera especificado. A operação só está concluída até que uma mensagem fique disponível na fila ou ocorra o time-out.

ClearConnectionCache()

Limpa a cache da ligação.

Close()

Liberta todos os recursos alocados pelo MessageQueue.

Create(String, Boolean)

Cria uma fila de Fila de Mensagens transacional ou não transacional no caminho especificado.

Create(String)

Cria uma fila de Fila de Mensagens não transacional no caminho especificado.

CreateCursor()

Cria uma nova Cursor para a fila de mensagens atual.

CreateObjRef(Type)

Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Delete(String)

Elimina uma fila num servidor de Fila de Mensagens.

Dispose()

Liberta todos os recursos utilizados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Elimina os recursos (exceto memória) usados pelo MessageQueue.

EndPeek(IAsyncResult)

Completa a operação de peek assíncrona especificada.

EndReceive(IAsyncResult)

Completa a operação de receção assíncrona especificada.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Exists(String)

Determina se existe uma fila de Fila de Mensagens no caminho especificado.

GetAllMessages()

Devolve todas as mensagens que estão na fila.

GetEnumerator()
Obsoleto.

Enumera as mensagens numa fila. GetEnumerator() está obsoleto. GetMessageEnumerator2() em vez disso, deve ser utilizado.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso.

(Herdado de MarshalByRefObject)
GetMachineId(String)

Obtém o identificador do computador onde está localizada a fila referenciada por isto MessageQueue .

GetMessageEnumerator()
Obsoleto.

Cria um objeto enumerador para todas as mensagens na fila. GetMessageEnumerator() está obsoleto. GetMessageEnumerator2() em vez disso, deve ser utilizado.

GetMessageEnumerator2()

Cria um objeto enumerador para todas as mensagens na fila.

GetMessageQueueEnumerator()

Fornece semântica de cursor apenas para encaminhar para enumerar através de todas as filas públicas na rede.

GetMessageQueueEnumerator(MessageQueueCriteria)

Fornece semântica de cursor apenas para encaminhar para enumerar através de todas as filas públicas na rede que cumpram os critérios especificados.

GetPrivateQueuesByMachine(String)

Recupera todas as filas privadas no computador especificado.

GetPublicQueues()

Recupera todas as filas públicas na rede.

GetPublicQueues(MessageQueueCriteria)

Recupera todas as filas públicas na rede que cumpram os critérios especificados.

GetPublicQueuesByCategory(Guid)

Recupera todas as filas públicas na rede que pertencem à categoria especificada.

GetPublicQueuesByLabel(String)

Recupera todas as filas públicas na rede que transportam a etiqueta especificada.

GetPublicQueuesByMachine(String)

Recupera todas as filas públicas que residem no computador especificado.

GetSecurityContext()

Recupera o contexto de segurança que o MSMQ associa ao utilizador atual (identidade da thread) no momento desta chamada.

GetService(Type)

Devolve um objeto que representa um serviço fornecido pelo Component ou pelo seu Container.

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()

Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
Peek()

Retorna sem remover (peeks) a primeira mensagem na fila referenciada por este MessageQueue. O Peek() método é síncrono, pelo que bloqueia a thread atual até que uma mensagem fique disponível.

Peek(TimeSpan, Cursor, PeekAction)

Retorna sem remover (espreitar) a mensagem atual ou próxima na fila, usando o cursor especificado. O Peek() método é síncrono, pelo que bloqueia a thread atual até que uma mensagem fique disponível ou ocorra o time-out especificado.

Peek(TimeSpan)

Retorna sem remover (peeks) a primeira mensagem na fila referenciada por este MessageQueue. O Peek() método é síncrono, pelo que bloqueia a thread atual até que uma mensagem fique disponível ou ocorra o time-out especificado.

PeekByCorrelationId(String, TimeSpan)

Espreita a mensagem que corresponde ao identificador de correlação dado e espera até que uma mensagem com o identificador de correlação especificado esteja disponível na fila, ou que o time-out expire.

PeekByCorrelationId(String)

Espreita a mensagem que corresponde ao identificador de correlação dado e levanta imediatamente uma exceção se não existir nenhuma mensagem com o identificador de correlação especificado na fila.

PeekById(String, TimeSpan)

Espreita a mensagem cujo identificador corresponde ao id parâmetro. Espera até que a mensagem apareça na fila ou que ocorra um time-out.

PeekById(String)

Espreita a mensagem cujo identificador corresponde ao id parâmetro.

PeekByLookupId(Int64)

Introduzido no MSMQ 3.0. Espreita a mensagem que corresponde ao identificador de pesquisa dado numa fila não transacional.

PeekByLookupId(MessageLookupAction, Int64)

Introduzido no MSMQ 3.0. Espreita uma mensagem específica da fila. A mensagem pode ser especificada por um identificador de consulta ou pela sua posição no início ou fim da fila.

Purge()

Apaga todas as mensagens contidas na fila.

Receive()

Recebe a primeira mensagem disponível na fila referenciada pelo MessageQueue. Esta chamada é síncrona e bloqueia o fio de execução atual até que uma mensagem esteja disponível.

Receive(MessageQueueTransaction)

Recebe a primeira mensagem disponível na fila transacional referenciada pelo MessageQueue. Esta chamada é síncrona e bloqueia o fio de execução atual até que uma mensagem esteja disponível.

Receive(MessageQueueTransactionType)

Recebe a primeira mensagem disponível na fila referenciada pelo MessageQueue. Esta chamada é síncrona e bloqueia o fio de execução atual até que uma mensagem esteja disponível.

Receive(TimeSpan, Cursor, MessageQueueTransaction)

Recebe a mensagem atual na fila, usando um cursor especificado. Se não houver mensagem disponível, este método espera até que uma mensagem esteja disponível ou que o time-out expire.

Receive(TimeSpan, Cursor, MessageQueueTransactionType)

Recebe a mensagem atual na fila, usando um cursor especificado. Se não houver mensagem disponível, este método espera até que uma mensagem esteja disponível ou que o time-out expire.

Receive(TimeSpan, Cursor)

Recebe a mensagem atual na fila, usando um cursor especificado. Se não houver mensagem disponível, este método espera até que uma mensagem esteja disponível ou que o time-out expire.

Receive(TimeSpan, MessageQueueTransaction)

Recebe a primeira mensagem disponível na fila transacional referenciada pelo MessageQueue e espera até que uma mensagem esteja disponível na fila ou que o time-out expire.

Receive(TimeSpan, MessageQueueTransactionType)

Recebe a primeira mensagem disponível na fila referenciada pelo MessageQueue. Esta chamada é síncrona e espera até que uma mensagem esteja disponível na fila ou que o time-out expire.

Receive(TimeSpan)

Recebe a primeira mensagem disponível na fila referenciada pelo MessageQueue e espera até que uma mensagem esteja disponível na fila ou que o time-out expire.

ReceiveByCorrelationId(String, MessageQueueTransaction)

Recebe a mensagem que corresponde ao identificador de correlação dado (de uma fila transacional) e levanta imediatamente uma exceção se não existir nenhuma mensagem com o identificador de correlação especificado na fila.

ReceiveByCorrelationId(String, MessageQueueTransactionType)

Recebe a mensagem que corresponde ao identificador de correlação dado e levanta imediatamente uma exceção se não existir nenhuma mensagem com o identificador de correlação especificado na fila.

ReceiveByCorrelationId(String, TimeSpan, MessageQueueTransaction)

Recebe a mensagem que corresponde ao identificador de correlação dado (de uma fila transacional) e espera até que uma mensagem com o identificador de correlação especificado esteja disponível na fila, ou que o time-out expire.

ReceiveByCorrelationId(String, TimeSpan, MessageQueueTransactionType)

Recebe a mensagem que corresponde ao identificador de correlação dado e espera até que uma mensagem com o identificador de correlação especificado esteja disponível na fila, ou até que o time-out expire.

ReceiveByCorrelationId(String, TimeSpan)

Recebe a mensagem que corresponde ao identificador de correlação dado (de uma fila não transacional) e espera até que uma mensagem com o identificador de correlação especificado esteja disponível na fila, ou que o time-out expire.

ReceiveByCorrelationId(String)

Recebe a mensagem que corresponde ao identificador de correlação dado (de uma fila não transacional) e levanta imediatamente uma exceção se não existir nenhuma mensagem com o identificador de correlação especificado na fila.

ReceiveById(String, MessageQueueTransaction)

Recebe a mensagem que corresponde ao identificador dado (de uma fila transacional) e imediatamente abre uma exceção se não existir nenhuma mensagem com o identificador especificado na fila.

ReceiveById(String, MessageQueueTransactionType)

Recebe a mensagem que corresponde ao identificador indicado e levanta imediatamente uma exceção se não existir nenhuma mensagem com o identificador especificado na fila.

ReceiveById(String, TimeSpan, MessageQueueTransaction)

Recebe a mensagem que corresponde ao identificador dado (de uma fila transacional) e espera até que uma mensagem com o identificador especificado esteja disponível na fila ou que o time-out expire.

ReceiveById(String, TimeSpan, MessageQueueTransactionType)

Recebe a mensagem que corresponde ao identificador dado e espera até que uma mensagem com o identificador especificado esteja disponível na fila ou até que o time-out expire.

ReceiveById(String, TimeSpan)

Recebe a mensagem que corresponde ao identificador indicado (de uma fila não transacional) e espera até que uma mensagem com o identificador especificado esteja disponível na fila ou o time-out expire.

ReceiveById(String)

Recebe a mensagem que corresponde ao identificador dado de uma fila não transacional e levanta imediatamente uma exceção se não existir nenhuma mensagem com o identificador especificado na fila.

ReceiveByLookupId(Int64)

Introduzido no MSMQ 3.0. Recebe a mensagem que corresponde ao identificador de pesquisa fornecido de uma fila não transacional.

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransaction)

Introduzido no MSMQ 3.0. Recebe uma mensagem específica de uma fila transacional. A mensagem pode ser especificada por um identificador de consulta ou pela sua posição no início ou fim da fila.

ReceiveByLookupId(MessageLookupAction, Int64, MessageQueueTransactionType)

Introduzido no MSMQ 3.0. Recebe uma mensagem específica da fila, usando o contexto de transação especificado. A mensagem pode ser especificada por um identificador de consulta ou pela sua posição no início ou fim da fila.

Refresh()

Atualiza as propriedades apresentadas pelo MessageQueue para refletir o estado atual do recurso.

ResetPermissions()

Reinicia a lista de permissões para os valores predefinidos do sistema operativo. Remove quaisquer permissões de fila que tenhas adicionado à lista padrão.

Send(Object, MessageQueueTransaction)

Envia um objeto para a fila transacional referenciada por este MessageQueue.

Send(Object, MessageQueueTransactionType)

Envia um objeto para a fila referenciada por este MessageQueue.

Send(Object, String, MessageQueueTransaction)

Envia um objeto para a fila transacional referenciada por esta MessageQueue e especifica um rótulo para a mensagem.

Send(Object, String, MessageQueueTransactionType)

Envia um objeto para a fila referenciada por isto MessageQueue e especifica um rótulo para a mensagem.

Send(Object, String)

Envia um objeto para a fila não transacional referenciada por esta MessageQueue e especifica um rótulo para a mensagem.

Send(Object)

Envia um objeto para uma fila não transacional referenciada por este MessageQueue.

SetPermissions(AccessControlList)

Atribui direitos de acesso à fila com base no conteúdo de uma lista de controlo de acesso.

SetPermissions(MessageQueueAccessControlEntry)

Atribui direitos de acesso à fila com base no conteúdo de uma entrada de controlo de acesso.

SetPermissions(String, MessageQueueAccessRights, AccessControlEntryType)

Concede a um computador, grupo ou utilizador os direitos de acesso especificados, com o tipo de controlo de acesso especificado (permitir, negar, revogar ou definir).

SetPermissions(String, MessageQueueAccessRights)

Concede a um computador, grupo ou utilizador os direitos de acesso especificados.

ToString()

Devolve a String contendo o nome do Component, se existir. Este método não deve ser ultrapassado.

(Herdado de Component)

evento

Name Description
Disposed

Ocorre quando o componente é eliminado por uma chamada ao Dispose() método.

(Herdado de Component)
PeekCompleted

Ocorre quando uma mensagem é lida sem ser removida da fila. Isto resulta da operação assíncrona, BeginPeek().

ReceiveCompleted

Ocorre quando uma mensagem foi removida da fila. Este evento é elevado pela operação assíncrona, BeginReceive().

Métodos da Extensão

Name Description
AsParallel(IEnumerable)

Permite a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable para um IQueryable.

Cast<TResult>(IEnumerable)

Conjura os elementos de an IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base num tipo especificado.

Aplica-se a

Segurança de Thread

Só que o GetAllMessages() método é seguro para fios.

Ver também