I have a console app in c# and I am trying to receive a message from a message queue until the message queue is empty. So something like,
MessageQueue queue = new MessageQueue();
While(queue.notempty)
{
queue.receive(...)
}
How can I do this?
Thanks.
There is no way to check whether queue is empty or not. You have to receive it this way:
private Message Receive(MessageQueue queue)
{
try
{
return queue.Receive(TimeSpan.Zero);
}
catch (MessageQueueException mqe)
{
if (mqe.MessageQueueErrorCode == MessageQueueErrorCode.IOTimeout)
return null;
throw;
}
}
then you can do
MessageQueue queue = new MessageQueue();
Message msg;
while( (msg = Receive(queue)) != null)
{
//process
}