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
}