У меня получилось так:
int num = 0;
if (MessageQueue.Exists("path to your queue"))
{
MessageQueue mq = new MessageQueue("path to your queue", QueueAccessMode.Peek);
var messages = mq.GetMessageEnumerator2();
while (messages.MoveNext())
{
num++;
}
}
В конструкторе MessageQueue() обязательно указываем метод доступа к очереди Peek, который не удаляет сообщения из очереди.
Если необходимо узнать, какое место в очереди занимает наше сообщение, добавляем сравнение поля Label очереди в цикл while.
while (messages.MoveNext())
{
if (messages.Current.Label != "someCustomLabel")
num++;
else
break;
}
Комментариев нет:
Отправить комментарий