Jestem obecnie robi to tak:Czy istnieje lepszy sposób liczenia wiadomości w kolejce wiadomości (MSMQ)?
MessageQueue queue = new MessageQueue(".\Private$\myqueue");
MessageEnumerator messageEnumerator = queue.GetMessageEnumerator2();
int i = 0;
while (messageEnumerator.MoveNext())
{
i++;
}
return i;
Ale z oczywistych względów, po prostu czuje się źle - nie powinien mieć do iterację każdej wiadomości po to, żeby liczyć, powinienem?
Czy istnieje lepszy sposób?
Wydajność tej techniki jest straszna, gdy kolejka przekracza 10 000 wiadomości. –
Co więcej, może wyrzucić OutOfMemoryException, jeśli w kolejce jest za dużo wiadomości. – Ivan