定義された数のメッセージをメッセージキューから削除します

DarkW1nter

を使用するの.Purge()ではなく、定義された数のメッセージをキューから削除する方法はありますか?

現在のメッセージで必要なことをすべて行った後MessageEnumerator、を設定して使用しようとし.RemoveCurrrentましたが、機能しないようです。

ありがとう

public Message[] Get10(MessageQueue q)
    {

        int counter = 0;
        int mCount = 0;
        List<Message> ml = new List<Message>();
        try
        {
            MessageEnumerator me = q.GetMessageEnumerator2();
            while (me.MoveNext())
            {
                counter++;
            }
            if (counter > 10)
            {
                mCount = 10;
            }
            else
            {
                mCount = counter;
            }
            counter = 0;
            me.Reset();
            do
            {
                me.MoveNext();
                counter++;
                ml.Add(me.Current);
                me.RemoveCurrent();
            } while (counter < mCount);

        }

        catch (Exception x)
        {
            Console.WriteLine(x.Message);
        }
        Message[] m = ml.ToArray();
        return m;
    }
マウロ・セルッティ

を呼び出すRemoveCurrent()と、列挙子は次のメッセージに移動します。を呼び出したMoveNext()後に呼び出す必要はありませんRemoveCurrent()

あなたが試みるかもしれないもう一つのアプローチは次のようなものです:

    List<Message> ml = new List<Message>();
    int count = 0;

    while(  count < 10 ) {
        ml.Add(me.RemoveCurrent());
        ++count;
    }

この場合、RemoveCurrentキューにメッセージが残っていない場合は永久に待機することに注意する必要があります。それが必要なものでない場合は、RemoveCurrent(TimeSpan timeout)オーバーロードを使用してMessageQueueException、タイムアウトの場合にスローされるものをキャッチすることをお勧めしますMessageQueueExceptionクラスが持っているMessageQueueErrorCodeに設定されているプロパティMessageQueueErrorCode.IOTimeoutのタイムアウトの有効期限が切れている場合を。

または(これは最大10個のメッセージを受け取ります:キュー内のメッセージ数がゼロになるとループは終了します):

    List<Message> ml = new List<Message>();
    int count = 0;

    while( me.MoveNext() && count < 10 ) {
        ml.Add(queue.ReceiveById(me.Current.Id));
        ++count;
    }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

禁止されたユーザーのメッセージを削除しますか?

分類Dev

メッセージが送信された直後にRabbitMQのキューからメッセージを削除する方法

分類Dev

MSMQから削除された複数のメッセージ

分類Dev

worker.postMessage()を介して送信されたメッセージはキューに入れられますか?

分類Dev

メッセージに添付された画像なしでメッセージを削除しますか?

分類Dev

C#を使用してメッセージキューからメッセージを削除する方法は?

分類Dev

無効にされたAzure関数は、引き続きAzureストレージキューからメッセージをプルします

分類Dev

discord.pyは、固定されたメッセージ以外のメッセージを削除します

分類Dev

「指定されたロックが無効です」というメッセージが表示されるのはなぜですか。LockTockenを使用してキューメッセージを削除しようとするとエラーが発生します

分類Dev

キューからメッセージを削除する方法

分類Dev

cのPOSIXメッセージキューからすべてのメッセージを削除またはクリアする方法は?

分類Dev

RabbitMQ-未確認のすべてのメッセージからキューを削除します

分類Dev

DestroyWindow()は、ウィンドウのメッセージをメッセージキューから削除しますか?

分類Dev

c#からactivemqキュー内の特定のメッセージを削除します

分類Dev

webjobQueueTriggerはキューからメッセージを削除しません

分類Dev

Azure ServiceBusキュー-ロックされたメッセージを解放してキューに戻します

分類Dev

Amazon AWS、SQSキューからのメッセージが複数回配信されました

分類Dev

同じWebworkerに複数のメッセージを送信した場合、それらをキューに入れて順番に処理しますか?

分類Dev

Notesの送信キューからメッセージを削除する方法

分類Dev

msgsndからの無効な引数を引き起こす2つのフォークされたプロセス間のメッセージキュー

分類Dev

メッセージはいつキューから消去されますか?

分類Dev

JMS:コミットまたはロールバックなしでOnMessage()のキューから複数のメッセージを取得できますか

分類Dev

JSQMessagesViewControllerに表示されるメッセージの数を決定します

分類Dev

無効な引数と識別子がメッセージキューのエラーを削除しました

分類Dev

Spring Rabbit:確認モード= RetryTemplateを使用した手動では、メッセージはキューから削除されません

分類Dev

RabbitMqを使用したSpringamqp:メッセージがデッドレターキューから外れた後、ライブキューに戻されません

分類Dev

モジュールで明示的に定義されたメソッド/関数のリストを取得します

分類Dev

事前定義された返信メッセージを記載したメールを送信できますか

分類Dev

Oppoデバイスで「メッセージセキュリティのために、システムメッセージアプリがデフォルトのメッセージアプリとして設定されています」の問題を解決するにはどうすればよいですか?

Related 関連記事

  1. 1

    禁止されたユーザーのメッセージを削除しますか?

  2. 2

    メッセージが送信された直後にRabbitMQのキューからメッセージを削除する方法

  3. 3

    MSMQから削除された複数のメッセージ

  4. 4

    worker.postMessage()を介して送信されたメッセージはキューに入れられますか?

  5. 5

    メッセージに添付された画像なしでメッセージを削除しますか?

  6. 6

    C#を使用してメッセージキューからメッセージを削除する方法は?

  7. 7

    無効にされたAzure関数は、引き続きAzureストレージキューからメッセージをプルします

  8. 8

    discord.pyは、固定されたメッセージ以外のメッセージを削除します

  9. 9

    「指定されたロックが無効です」というメッセージが表示されるのはなぜですか。LockTockenを使用してキューメッセージを削除しようとするとエラーが発生します

  10. 10

    キューからメッセージを削除する方法

  11. 11

    cのPOSIXメッセージキューからすべてのメッセージを削除またはクリアする方法は?

  12. 12

    RabbitMQ-未確認のすべてのメッセージからキューを削除します

  13. 13

    DestroyWindow()は、ウィンドウのメッセージをメッセージキューから削除しますか?

  14. 14

    c#からactivemqキュー内の特定のメッセージを削除します

  15. 15

    webjobQueueTriggerはキューからメッセージを削除しません

  16. 16

    Azure ServiceBusキュー-ロックされたメッセージを解放してキューに戻します

  17. 17

    Amazon AWS、SQSキューからのメッセージが複数回配信されました

  18. 18

    同じWebworkerに複数のメッセージを送信した場合、それらをキューに入れて順番に処理しますか?

  19. 19

    Notesの送信キューからメッセージを削除する方法

  20. 20

    msgsndからの無効な引数を引き起こす2つのフォークされたプロセス間のメッセージキュー

  21. 21

    メッセージはいつキューから消去されますか?

  22. 22

    JMS:コミットまたはロールバックなしでOnMessage()のキューから複数のメッセージを取得できますか

  23. 23

    JSQMessagesViewControllerに表示されるメッセージの数を決定します

  24. 24

    無効な引数と識別子がメッセージキューのエラーを削除しました

  25. 25

    Spring Rabbit:確認モード= RetryTemplateを使用した手動では、メッセージはキューから削除されません

  26. 26

    RabbitMqを使用したSpringamqp:メッセージがデッドレターキューから外れた後、ライブキューに戻されません

  27. 27

    モジュールで明示的に定義されたメソッド/関数のリストを取得します

  28. 28

    事前定義された返信メッセージを記載したメールを送信できますか

  29. 29

    Oppoデバイスで「メッセージセキュリティのために、システムメッセージアプリがデフォルトのメッセージアプリとして設定されています」の問題を解決するにはどうすればよいですか?

ホットタグ

アーカイブ