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

下表顯示此方法是否可在各種工作組模式中使用。

工作組模式 可用
本機電腦
本機電腦和直接格式名稱
遠端電腦
遠端電腦和直接格式名稱

適用於

另請參閱