How to count messages in a MessageQueue

There are a few different ways of getting a count of the number of messages in the MessageQueue. Here’s a simple one.

       public static int GetMessageCount(MessageQueue q)


           int messageCount = 0;


           using (MessageEnumerator messageEnumerator = q.GetMessageEnumerator2())


               while (messageEnumerator.MoveNext())






           return messageCount;


The GetMessageEnumerator2 method creates a dynamic list of all the messages in that queue. So you can iterate over the list to get the count.

Other ways of doing this are:

  1. Peek the queue with a cursor

  2. COM Interop

  3. MSMQ Performance counters via WMI

  4. MSMQ Admin APIs

Comments (0)

Skip to main content