2011-02-16 145 views
1

我有一个使用GetAllMessages读取MSMQ的程序,但它不会从队列中删除消息,所以我有以下代码;不断收到相同的消息。我不想一次又一次地处理相同的消息。我如何确保MSMQ删除那些已收到的消息或至少我没有收到它?从MSMQ中删除消息

while() 
{ 
    Messages[] receivedMessage = queue.GetAllMessages() 

    foreach(Message msg in receivedMessage) 
    { 
     ... Processing 
    } 
} 

回答

7

GetAllMessages()为您提供队列中消息的副本,但不会将其删除。

使用任何的方法Receive从队列

+1

接收并删除的邮件从MSDN:http://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.getallmessages.aspx - 备注:“... GetAllMessages在调用方法时返回队列中消息的副本”。你为什么要调用GetAllMessages()? – 2011-02-17 13:25:17