编程语言
首页 > 编程语言> > c# – 消息队列循环

c# – 消息队列循环

作者:互联网

我在c#中有一个控制台应用程序,我正在尝试从消息队列接收消息,直到消息队列为空.所以,像,

MessageQueue queue = new MessageQueue();
While(queue.notempty)
{
    queue.receive(...)
}

我怎样才能做到这一点?

谢谢.

解决方法:

无法检查队列是否为空.你必须这样收到它:

private Message Receive(MessageQueue queue)
{
   try 
   {
      return queue.Receive(TimeSpan.Zero);
   }
   catch (MessageQueueException mqe)
   {
      if (mqe.MessageQueueErrorCode == MessageQueueErrorCode.IOTimeout)
         return null;
      throw;
   }
}

那么你可以做到

MessageQueue queue = new MessageQueue();
Message msg;
while( (msg = Receive(queue)) != null)
{
    //process
}

标签:c,msmq
来源: https://codeday.me/bug/20190621/1255542.html