MessageQueue.GetAllMessages 方法

定义

返回位于队列中的所有消息。

public:
 cli::array <System::Messaging::Message ^> ^ GetAllMessages();
public System.Messaging.Message[] GetAllMessages ();
member this.GetAllMessages : unit -> System.Messaging.Message[]
Public Function GetAllMessages () As Message()

返回

类型 Message 的数组,表示队列中所有消息,其顺序与这些消息在“消息队列”队列中的出现顺序相同。

例外

访问“消息队列”方法时出错。

示例

以下代码示例演示了 GetAllMessages 的用法。


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

// Populate an array with copies of all the messages in the queue.
array<Message^>^ msgs = queue->GetAllMessages();

// Loop through the messages.
for each(Message^ msg in msgs)
{
    // Display the label of each message.
    Console::WriteLine(msg->Label);
}

queue->Close();

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

// Populate an array with copies of all the messages in the queue.
Message[] msgs = queue.GetAllMessages();

// Loop through the messages.
foreach(Message msg in msgs)
{
    // Display the label of each message.
    Console.WriteLine(msg.Label);
}

注解

GetAllMessages返回队列中消息的静态快照,而不是这些消息的动态链接。 因此,不能使用 数组修改队列中的消息。 如果需要与队列 ((例如删除消息) )的实时动态交互,请调用 GetMessageEnumerator2 方法,该方法返回队列中消息的动态列表。

由于返回调用方法时队列中消息的副本,因此 GetAllMessages 数组不会反映到达队列的新消息或从队列中删除的消息。

GetAllMessages 仅检索未由 属性筛选掉的属性 MessageReadPropertyFilter

下表显示了此方法是否在各种工作组模式下可用。

工作组模式 可用
本地计算机
本地计算机和直接格式名称
远程计算机
远程计算机和直接格式名称

适用于

另请参阅