MessageQueue.GetAllMessages 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回位于队列中的所有消息。
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[]
类型 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 。
下表显示了此方法是否在各种工作组模式下可用。
工作组模式 | 可用 |
---|---|
本地计算机 | 是 |
本地计算机和直接格式名称 | 是 |
远程计算机 | 否 |
远程计算机和直接格式名称 | 是 |