2011-02-16 141 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