次の方法で共有


方法 : メッセージを取得します。

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

か静的または動的な取得機構を使用してメッセージの一覧を取得することができます。 メッセージの静的一覧を取得する場合は、システム キュー内のすべてのメッセージを表す Message オブジェクトの配列を返します。

メッセージの動的な一覧を取得すると、システム キュー内のすべてのメッセージを表す MessageEnumerator オブジェクトを返します。 MessageEnumerator オブジェクトは、動的な一覧の先頭に初期化されたカーソルです。 リストの順序は、キュー内のメッセージの順序 (メッセージの優先順位に従った順序) と同じです。 キュー内の最初のメッセージにカーソルを移動 MoveNext メソッドを呼び出すことを実行することができます。 列挙子が初期化された後に、MoveNext を使って残りのメッセージを順に進んでいくことができます。 タイムアウト値を MoveNext メソッドに渡すことにより、メッセージを待つかどうか指定できます。

列挙子は動的であるためには (たとえば、ため優先順位が低い)、カーソルの現在の位置を越えて追加するメッセージにアクセスできます。 列挙子は、メッセージ、カーソルの現在位置の直前が追加されますがアクセスできません。 MessageEnumerator で後方に移動することはできません。 カーソルは前方にだけ移動できます。 しかし、Reset メソッドを使うと、キューの先頭にカーソルを戻すことができます。

注意

MessageQueueDenySharedReceive true に設定を持つインスタンスを作成する場合は、他のアプリケーションは変更できません、列挙子内のメッセージ キューへの接続中に。

メッセージの静的一覧を取得

  1. MessageQueue コンポーネントのインスタンスを作成し、 Path プロパティを参照するキューに設定します。 詳細については、「方法 : MessageQueue コンポーネントのインスタンスを作成します。」を参照してください。

    注意

    のサーバー エクスプローラーからコンポーネントを作成する場合そのキューのキュー パスに、 Path プロパティが自動的に設定します。

  2. クエリの結果を保持するには、Message クラスを参照する配列を作成します。

  3. GetAllMessages メソッドを呼び出します。

  4. 作成した配列の結果を割り当てます。

    GetAllMessages 関数が使用して、キューからメッセージを取得し、リスト ボックスに、メッセージ ラベルを表示する方法を次コードに示します。 次の使用例では、MessageQueue コンポーネントのインスタンスが、アプリケーションに追加されてことをいると仮定します。

                                Private
                                Sub button1_Click(ByVal sender As System.Object,
       ByVal e As System.EventArgs) Handles button1.Click
        Me.MessageQueue1.Path = ".\MyQueue"Dim msg() As System.Messaging.Message
        Dim i AsInteger    ' Retrieve the messages.
        msg = MessageQueue1.GetAllMessages()
        ' Clear the current contents of the list.Me.ListBox1.Items.Clear()
        ' Display the results.For i = 0 To msg.Length - 1
            Me.ListBox1.Items.Add(msg(i).Label)
        NextEndSub
    
                                private
                                void button1_Click(System.Object sender, System.EventArgs e)
        {
            messageQueue1.Path = ".\\MyQueue";
            System.Messaging.Message[] msg;
            // Retrieve the messages.
            msg = messageQueue1.GetAllMessages();
            // Clear the current contents of the list.this.listBox1.Items.Clear();
            // Display the results.for (int i = 0; i < msg.Length; i++)
            {
                this.listBox1.Items.Add(msg[i].Label);
            }
        }
    

メッセージの動的な一覧を取得

  1. MessageQueue コンポーネントのインスタンスを作成し、 Path プロパティを参照するキューに設定します。 詳細については、「方法 : MessageQueue コンポーネントのインスタンスを作成します。」を参照してください。

    注意

    のサーバー エクスプローラーからコンポーネントを作成する場合そのキューのキュー パスに、 Path プロパティが自動的に設定します。

  2. MessageEnumerator オブジェクト、クエリの結果を保持するを作成します。

  3. GetEnumerator クラスに対して、 MessageQueue メソッドを呼び出します。

  4. MessageEnumerator オブジェクトの結果を割り当てます。 コード次のように可能性があります。

                                Dim mq AsNew System.Messaging.MessageQueue(".\MyQueue")
    Dim msgEnum As System.Messaging.MessageEnumerator
    msgEnum = CType(mq.GetMessageEnumerator2, System.Messaging.MessageEnumerator)
    
            System.Messaging.MessageQueue mq = new System.Messaging.MessageQueue();
            System.Messaging.MessageEnumerator msgEnum;
            mq.Path = @".\MyQueue";
            msgEnum = (System.Messaging.MessageEnumerator)(mq.GetMessageEnumerator2());
    
    

参照

処理手順

方法 : キューを取得します。

概念

キューおよびメッセージのコレクション