Compartilhar via


MessageQueue Classe

Definição

Fornece acesso a uma fila em um servidor de Enfileiramento 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 a seguir cria novos MessageQueue objetos usando vários tipos de sintaxe de nome de caminho. Em cada caso, ele envia uma mensagem para a fila cujo caminho é 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 exemplo de código a seguir envia uma mensagem para uma fila e recebe uma mensagem de uma fila usando uma classe específica do aplicativo 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

Comentários

A tecnologia de Enfileiramento de Mensagens permite que aplicativos em execução em horários diferentes se comuniquem entre redes heterogêneas e sistemas que podem estar temporariamente offline. Os aplicativos enviam, recebem ou espiam (ler sem remover) mensagens de filas. O Enfileiramento de Mensagens é um componente opcional do Windows 2000 e do Windows NT e deve ser instalado separadamente.

A MessageQueue classe é um wrapper em torno do Enfileiramento de Mensagens. Há várias versões do Enfileiramento de Mensagens e o uso da MessageQueue classe pode resultar em um comportamento ligeiramente diferente, dependendo do sistema operacional que você está usando.

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

MessageQueue dá suporte a dois tipos de recuperação de mensagem: síncrono e assíncrono. Os métodos síncronos e Receivefazem Peek com que o thread do processo aguarde um intervalo de tempo especificado para que uma nova mensagem chegue à fila. Os métodos BeginPeek assíncronos e BeginReceive, permitem que as tarefas principais do aplicativo continuem em um thread separado até que uma mensagem chegue à fila. Esses métodos funcionam usando objetos de retorno de chamada e objetos de estado para comunicar informações entre threads.

Quando você cria uma nova instância da MessageQueue classe, não está criando uma nova fila de Enfileiramento de Mensagens. Em vez disso, você pode usar os Create(String)métodos e Purge , Delete(String)para gerenciar filas no servidor.

Ao contrário Purgee Delete(String)Create(String) são static membros, portanto, você pode chamá-los sem criar uma nova instância da MessageQueue classe.

Você pode definir a MessageQueue propriedade do Path objeto com um dos três nomes: o nome amigável, o FormatNameou o Label. O nome amigável, que é definido pelas propriedades e da fila, é MachineNameQueueName\para uma fila pública ePrivate$\QueueNameMachineName\para uma fila privada.MachineNameQueueName A FormatName propriedade permite acesso offline a filas de mensagens. Por fim, você pode usar a propriedade da Label fila para definir a fila.Path

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

Construtores

Nome Description
MessageQueue()

Inicializa uma nova instância da classe MessageQueue. Depois que o construtor sem parâmetros inicializar a nova instância, você deverá definir a propriedade da Path instância antes de poder usar a instância.

MessageQueue(String, Boolean, Boolean, QueueAccessMode)

Inicializa uma nova instância da classe MessageQueue.

MessageQueue(String, Boolean, Boolean)

Inicializa uma nova instância da classe MessageQueue.

MessageQueue(String, Boolean)

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

MessageQueue(String, QueueAccessMode)

Inicializa uma nova instância da classe MessageQueue.

MessageQueue(String)

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

Campos

Nome Description
InfiniteQueueSize

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

InfiniteTimeout

Especifica que não existe tempo limite para métodos que espiam ou recebem mensagens.

Propriedades

Nome Description
AccessMode

Obtém um valor que indica o modo de acesso para a fila.

Authenticate

Obtém ou define um valor que indica se a fila aceita apenas mensagens autenticadas.

BasePriority

Obtém ou define a prioridade base que o Enfileiramento de Mensagens usa para rotear 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 valor pode ser lido.

CanWrite

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

Category

Obtém ou define a categoria de 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 no Enfileiramento de Mensagens.

DefaultPropertiesToSend

Obtém ou define os valores da propriedade da mensagem a serem usados por padrão quando o aplicativo envia mensagens para a fila.

DenySharedReceive

Obtém ou define um valor que indica se isso MessageQueue tem acesso exclusivo para receber mensagens da fila de Enfileiramento de Mensagens.

DesignMode

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

(Herdado de Component)
EnableConnectionCache

Obtém ou define um valor que indica se um cache de conexões será mantido pelo aplicativo.

EncryptionRequired

Obtém ou define um valor que indica se a fila aceita apenas mensagens não privadas (não criptografadas).

Events

Obtém a lista de manipuladores de eventos anexados a isso Component.

(Herdado de Component)
FormatName

Obtém o nome exclusivo da fila que o Enfileiramento de Mensagens gerou no momento da criação da fila.

Formatter

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

Id

Obtém o identificador exclusivo de Enfileiramento de Mensagens da fila.

Label

Obtém 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 em que a fila de Enfileiramento de Mensagens está localizada.

MaximumJournalSize

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

MaximumQueueSize

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

MessageReadPropertyFilter

Obtém ou define o filtro de propriedade para receber ou espiar mensagens.

MulticastAddress

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

Path

Obtém ou define o caminho da fila. Definir as Path causas para apontar MessageQueue para uma nova fila.

QueueName

Obtém ou define o nome amigável que identifica a fila.

ReadHandle

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

Site

Obtém ou define o ISiteComponent.

(Herdado de Component)
SynchronizingObject

Obtém ou define o objeto que faz marshaling da chamada de manipulador de eventos resultante de um evento ou PeekCompleted eventoReceiveCompleted.

Transactional

Obtém um valor que indica se a fila aceita apenas transações.

UseJournalQueue

Obtém ou define um valor que indica se as mensagens recebidas são copiadas para a fila de diários.

WriteHandle

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

Métodos

Nome Description
BeginPeek()

Inicia uma operação de espiada assíncrona que não tem tempo limite. A operação não será concluída até que uma mensagem fique disponível na fila.

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

Inicia uma operação de espiada assíncrona que tem um tempo limite especificado e que usa um cursor especificado, uma ação de espiada especificada e um objeto de estado especificado. O objeto de estado fornece informações associadas durante todo o tempo de vida da operação. Essa sobrecarga recebe a notificação, por meio de um retorno de chamada, da identidade do manipulador de eventos da operação. A operação não é concluída até que uma mensagem fique disponível na fila ou o tempo limite ocorra.

BeginPeek(TimeSpan, Object, AsyncCallback)

Inicia uma operação de espiada assíncrona que tem um tempo limite especificado e um objeto de estado especificado, que fornece informações associadas durante todo o tempo de vida da operação. Essa sobrecarga recebe a notificação, por meio de um retorno de chamada, da identidade do manipulador de eventos da operação. A operação não é concluída até que uma mensagem fique disponível na fila ou o tempo limite ocorra.

BeginPeek(TimeSpan, Object)

Inicia uma operação de espiada assíncrona que tem um tempo limite especificado e um objeto de estado especificado, que fornece informações associadas durante todo o tempo de vida da operação. A operação não é concluída até que uma mensagem fique disponível na fila ou o tempo limite ocorra.

BeginPeek(TimeSpan)

Inicia uma operação de espiada assíncrona que tem um tempo limite especificado. A operação não é concluída até que uma mensagem fique disponível na fila ou o tempo limite ocorra.

BeginReceive()

Inicia uma operação de recebimento assíncrona que não tem tempo limite. A operação não será concluída até que uma mensagem fique disponível na fila.

BeginReceive(TimeSpan, Cursor, Object, AsyncCallback)

Inicia uma operação de recebimento assíncrona que tem um tempo limite especificado e usa um cursor especificado e um objeto de estado especificado. O objeto de estado fornece informações associadas durante todo o tempo de vida da operação. Essa sobrecarga recebe a notificação, por meio de um retorno de chamada, da identidade do manipulador de eventos da operação. A operação não é concluída até que uma mensagem fique disponível na fila ou o tempo limite ocorra.

BeginReceive(TimeSpan, Object, AsyncCallback)

Inicia uma operação de recebimento assíncrona que tem um tempo limite especificado e um objeto de estado especificado, que fornece informações associadas durante todo o tempo de vida da operação. Essa sobrecarga recebe a notificação, por meio de um retorno de chamada, da identidade do manipulador de eventos da operação. A operação não é concluída até que uma mensagem fique disponível na fila ou o tempo limite ocorra.

BeginReceive(TimeSpan, Object)

Inicia uma operação de recebimento assíncrona que tem um tempo limite especificado e um objeto de estado especificado, que fornece informações associadas durante todo o tempo de vida da operação. A operação não é concluída até que uma mensagem fique disponível na fila ou o tempo limite ocorra.

BeginReceive(TimeSpan)

Inicia uma operação de recebimento assíncrona que tem um tempo limite especificado. A operação não é concluída até que uma mensagem fique disponível na fila ou o tempo limite ocorra.

ClearConnectionCache()

Limpa o cache de conexão.

Close()

Libera todos os recursos alocados pelo MessageQueue.

Create(String, Boolean)

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

Create(String)

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

CreateCursor()

Cria um novo Cursor para a fila de mensagens atual.

CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Delete(String)

Exclui uma fila em um servidor de Enfileiramento de Mensagens.

Dispose()

Libera todos os recursos usados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Descarta os recursos (além da memória) usados MessageQueuepelo .

EndPeek(IAsyncResult)

Conclui a operação de espiada assíncrona especificada.

EndReceive(IAsyncResult)

Conclui a operação de recebimento 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 Enfileiramento de Mensagens no caminho especificado.

GetAllMessages()

Retorna todas as mensagens que estão na fila.

GetEnumerator()
Obsoleto.

Enumera as mensagens em uma fila. GetEnumerator() está obsoleto. Em vez disso, GetMessageEnumerator2() deve ser usado.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
GetMachineId(String)

Obtém o identificador do computador no qual a fila referenciada por isso MessageQueue está localizada.

GetMessageEnumerator()
Obsoleto.

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

GetMessageEnumerator2()

Cria um objeto enumerador para todas as mensagens na fila.

GetMessageQueueEnumerator()

Fornece semântica de cursor somente para encaminhamento para enumerar em todas as filas públicas na rede.

GetMessageQueueEnumerator(MessageQueueCriteria)

Fornece semântica de cursor somente encaminhamento para enumerar em todas as filas públicas na rede que atendem aos 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 atendem aos 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 carregam o rótulo especificado.

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 usuário atual (identidade de thread) no momento dessa chamada.

GetService(Type)

Retorna um objeto que representa um serviço fornecido pelo Component ou por sua Container.

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida dessa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
Peek()

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

Peek(TimeSpan, Cursor, PeekAction)

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

Peek(TimeSpan)

Retorna sem remover (espia) a primeira mensagem na fila referenciada por isso MessageQueue. O Peek() método é síncrono, portanto, bloqueia o thread atual até que uma mensagem fique disponível ou o tempo limite especificado ocorra.

PeekByCorrelationId(String, TimeSpan)

Espia a mensagem que corresponde ao identificador de correlação especificado e aguarda até que uma mensagem com o identificador de correlação especificado esteja disponível na fila ou o tempo limite expire.

PeekByCorrelationId(String)

Espia a mensagem que corresponde ao identificador de correlação especificado e imediatamente gera uma exceção se nenhuma mensagem com o identificador de correlação especificado existir atualmente na fila.

PeekById(String, TimeSpan)

Espia a mensagem cujo identificador de mensagem corresponde ao id parâmetro. Aguarda até que a mensagem seja exibida na fila ou ocorra um tempo limite.

PeekById(String)

Espia a mensagem cujo identificador de mensagem corresponde ao id parâmetro.

PeekByLookupId(Int64)

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

PeekByLookupId(MessageLookupAction, Int64)

Introduzido no MSMQ 3.0. Espia uma mensagem específica da fila. A mensagem pode ser especificada por um identificador de pesquisa ou por sua posição na frente ou no final da fila.

Purge()

Exclui todas as mensagens contidas na fila.

Receive()

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

Receive(MessageQueueTransaction)

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

Receive(MessageQueueTransactionType)

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

Receive(TimeSpan, Cursor, MessageQueueTransaction)

Recebe a mensagem atual na fila usando um cursor especificado. Se nenhuma mensagem estiver disponível, esse método aguardará até que uma mensagem esteja disponível ou o tempo limite expire.

Receive(TimeSpan, Cursor, MessageQueueTransactionType)

Recebe a mensagem atual na fila usando um cursor especificado. Se nenhuma mensagem estiver disponível, esse método aguardará até que uma mensagem esteja disponível ou o tempo limite expire.

Receive(TimeSpan, Cursor)

Recebe a mensagem atual na fila usando um cursor especificado. Se nenhuma mensagem estiver disponível, esse método aguardará até que uma mensagem esteja disponível ou o tempo limite expire.

Receive(TimeSpan, MessageQueueTransaction)

Recebe a primeira mensagem disponível na fila transacional referenciada pelo MessageQueue e aguarda até que uma mensagem esteja disponível na fila ou o tempo limite expire.

Receive(TimeSpan, MessageQueueTransactionType)

Recebe a primeira mensagem disponível na fila referenciada pelo MessageQueue. Essa chamada é síncrona e aguarda até que uma mensagem esteja disponível na fila ou o tempo limite expire.

Receive(TimeSpan)

Recebe a primeira mensagem disponível na fila referenciada pelo MessageQueue e aguarda até que uma mensagem esteja disponível na fila ou o tempo limite expire.

ReceiveByCorrelationId(String, MessageQueueTransaction)

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

ReceiveByCorrelationId(String, MessageQueueTransactionType)

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

ReceiveByCorrelationId(String, TimeSpan, MessageQueueTransaction)

Recebe a mensagem que corresponde ao identificador de correlação especificado (de uma fila transacional) e aguarda até que uma mensagem com o identificador de correlação especificado esteja disponível na fila ou o tempo limite expire.

ReceiveByCorrelationId(String, TimeSpan, MessageQueueTransactionType)

Recebe a mensagem que corresponde ao identificador de correlação especificado e aguarda até que uma mensagem com o identificador de correlação especificado esteja disponível na fila ou o tempo limite expire.

ReceiveByCorrelationId(String, TimeSpan)

Recebe a mensagem que corresponde ao identificador de correlação especificado (de uma fila não transacional) e aguarda até que uma mensagem com o identificador de correlação especificado esteja disponível na fila ou o tempo limite expire.

ReceiveByCorrelationId(String)

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

ReceiveById(String, MessageQueueTransaction)

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

ReceiveById(String, MessageQueueTransactionType)

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

ReceiveById(String, TimeSpan, MessageQueueTransaction)

Recebe a mensagem que corresponde ao identificador especificado (de uma fila transacional) e aguarda até que uma mensagem com o identificador especificado esteja disponível na fila ou o tempo limite expire.

ReceiveById(String, TimeSpan, MessageQueueTransactionType)

Recebe a mensagem que corresponde ao identificador especificado e aguarda até que uma mensagem com o identificador especificado esteja disponível na fila ou o tempo limite expire.

ReceiveById(String, TimeSpan)

Recebe a mensagem que corresponde ao identificador especificado (de uma fila não transacional) e aguarda até que uma mensagem com o identificador especificado esteja disponível na fila ou o tempo limite expire.

ReceiveById(String)

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

ReceiveByLookupId(Int64)

Introduzido no MSMQ 3.0. Recebe a mensagem que corresponde ao identificador de pesquisa especificado 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 pesquisa ou por sua posição na frente ou no final 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 pesquisa ou por sua posição na frente ou no final da fila.

Refresh()

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

ResetPermissions()

Redefine a lista de permissões para os valores padrão do sistema operacional. Remove as permissões de fila que você anexou à 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 isso MessageQueue.

Send(Object, String, MessageQueueTransaction)

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

Send(Object, String, MessageQueueTransactionType)

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

Send(Object, String)

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

Send(Object)

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

SetPermissions(AccessControlList)

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

SetPermissions(MessageQueueAccessControlEntry)

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

SetPermissions(String, MessageQueueAccessRights, AccessControlEntryType)

Fornece a um computador, grupo ou usuário os direitos de acesso especificados, com o tipo de controle de acesso especificado (permitir, negar, revogar ou definir).

SetPermissions(String, MessageQueueAccessRights)

Fornece a um computador, grupo ou usuário os direitos de acesso especificados.

ToString()

Retorna um String que contém o nome do Component, se houver. Esse método não deve ser substituído.

(Herdado de Component)

Eventos

Nome Description
Disposed

Ocorre quando o componente é descartado por uma chamada para o Dispose() método.

(Herdado de Component)
PeekCompleted

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

ReceiveCompleted

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

Métodos de Extensão

Nome Description
AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

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

Aplica-se a

Acesso thread-safe

Somente o GetAllMessages() método é thread-safe.

Confira também