【发布时间】:2014-02-24 08:46:54
【问题描述】:
除了使用.Purge(),有没有办法从队列中删除定义数量的消息?
我尝试设置MessageEnumerator 并使用.RemoveCurrrent,在我对当前消息完成任何我需要做的事情后,但它似乎不起作用。
谢谢
public Message[] Get10(MessageQueue q)
{
int counter = 0;
int mCount = 0;
List<Message> ml = new List<Message>();
try
{
MessageEnumerator me = q.GetMessageEnumerator2();
while (me.MoveNext())
{
counter++;
}
if (counter > 10)
{
mCount = 10;
}
else
{
mCount = counter;
}
counter = 0;
me.Reset();
do
{
me.MoveNext();
counter++;
ml.Add(me.Current);
me.RemoveCurrent();
} while (counter < mCount);
}
catch (Exception x)
{
Console.WriteLine(x.Message);
}
Message[] m = ml.ToArray();
return m;
}
【问题讨论】:
-
向我们展示一些您尝试过的代码,以便我们更好地帮助您。
标签: c# msmq message-queue