代码之家  ›  专栏  ›  技术社区  ›  Pearl

如何从队列中一次获取一条MSMQ消息

  •  4
  • Pearl  · 技术社区  · 7 年前

    我正在使用控制台应用程序(C#)读取MSMQ消息。

    以下是工作代码。

    C#(控制台应用程序)

    static void Main(string[] args)
    {
         MessageQueue[] myQueueArray = MessageQueue.GetPrivateQueuesByMachine("192.0.0.1");
    
                        if (myQueueArray != null)
                        {                    
                            foreach (MessageQueue mq in myQueueArray)
                            {
                                if (mq.QueueName.Contains("myqueue"))
                                {
                                    myQueue = mq;
                                    break;
                                }
                            }
    
                            if (myQueue != null)
                            {
    
                                Message[] messageList = myQueue.GetAllMessages();
                                if (messageList != null)
                                {                           
                                    foreach (Message msg in messageList)
                                    {    
                                     //doing some operation with the message
                                    }    
                                }    
                            }
                         }
                     }
    

    上述代码工作正常。

    但我想一个一个地阅读MSMQ消息 如何一次从队列中获取一条消息?

    1 回复  |  直到 7 年前
        1
  •  5
  •   Adil    7 年前

    您可以使用 MessageQueue.Receive 要一次退出单个消息的队列,请参阅此MSDN article 。你也可以使用 BeginReceive ReceiveCompleted 事件以获取通知,请参阅此MSDN article .

    编辑

    MSDN 链接,该链接具有非常简单的示例代码,帮助OP将来自MSMQ的消息从队列中取出(通过注释指向)