【发布时间】:2015-08-24 15:21:17
【问题描述】:
我尝试通过 GetMessageEnumerator2 方法从 MSMQ 读取所有消息,但始终只获得 1 条消息,而使用 GetAllMessages 方法,我获得正确数量的消息...
以下代码中的“错误”在哪里:
//var messages = queue.GetAllMessages(); // HERE I HAVE 5 MESSAGES
var messages = queue.GetMessageEnumerator2();
ReadQueryMessages(messages, removeAfterRead: true);
//...
ReadQueryMessages(MessageEnumerator enumerator, bool removeAfterRead = true)
{
List<Message> messages = new List<Message>();
// enumerator.Reset(); - didn't help
while (enumerator.MoveNext(new TimeSpan(0, 0, 1)))
{
messages.Add(enumerator.Current);
if (removeAfterRead)
enumerator.RemoveCurrent();
}
// process messages - HERE I HAVE ONLY 1 FIRST MESSAGE
}
PS (对于“重复版主”)
我的问题不是问 HOW,而是 WHY 只有一个 删除时
【问题讨论】:
-
@MethodMan:我的问题不是问HOW,而是WHY只有一个时删除