2012-01-04 67 views

回答

0

假設對性能的影響是通過消息循環: 有通過所有的郵件無須循環,如果你想要的是最後一個。由於GetAllMessages()返回一個Message類型的數組,只需按索引轉到數組中的最後一個元素。

0

在MSMQ 3中有一項功能,可能是您正在尋找的功能。 ReceiveByLookupId方法可以獲取隊列中的最後一條消息。

http://msdn.microsoft.com/en-us/library/3w50th9h.aspx

你可以使用下面的操作:

MessageLookupAction.Last:接收隊列中的最後一條消息,並從 隊列中刪除。 lookupId參數必須設置爲0.

如果您使用的是早期版本的MSMQ,則可能必須使用Peek,類似於本博文的解釋如何獲取消息隊列的計數。當你到達最後一個時,你可以接收ReceiveById。

http://jopinblog.wordpress.com/2008/03/12/counting-messages-in-an-msmq-messagequeue-from-c/