我正在使用控制台应用程序(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消息 如何一次从队列中获取一条消息?
您可以使用 MessageQueue.Receive 要一次退出单个消息的队列,请参阅此MSDN article 。你也可以使用 BeginReceive 和 ReceiveCompleted 事件以获取通知,请参阅此MSDN article .
MessageQueue.Receive
BeginReceive
ReceiveCompleted
编辑
这 MSDN 链接,该链接具有非常简单的示例代码,帮助OP将来自MSMQ的消息从队列中取出(通过注释指向)