我正在使用控制台应用程序 (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 .
编辑
这MSDN链接具有非常简单的示例代码,可帮助 OP 从 MSMQ 中取出消息(通过注释指出)
关于c# - 如何从队列中一次抓取一条 MSMQ 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41956018/