次の方法で共有


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 フィルター処理されていないプロパティのみを取得します。

次の表は、このメソッドがさまざまなワークグループ モードで使用できるかどうかを示しています。

ワークグループ モード 利用可能
ローカル コンピューター はい
ローカル コンピューターと直接形式の名前 はい
リモート コンピューター いいえ
リモート コンピューターと直接形式の名前 はい

適用対象

こちらもご覧ください