我尝试通过GetMessageEnumerator2
方法读取来自MSMQ的所有消息,但总是只获取1条消息,而使用GetAllMessages
方法,我获取正确数量的消息... < / p>
以下代码中的“bug”在哪里:
//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 (对于“复制版主”)
我的问题不是要求如何,而是为什么只有一个才能删除