Как узнать количество сообщений в очереди Windows

  • Автор темы itten
  • Дата начала
Статус
Закрыто для дальнейших ответов.
I

itten

#1
Здравствуйте
Как можно _быстро_ определить количество сообщений в очереди Windows с использованием C# and .NET?
Сейчас я делаю так:
SomeQueue.GetAllMessages().Length;
Работает, но для больших очередей недостаточно быстро
 
M
#2
GetAllMessages returns a static snapshot of the messages in the queue, not dynamic links to those messages. Therefore, you cannot use the array to modify the messages in the queue. If you want real-time, dynamic interaction with the queue (such as the ability to delete messages), call the GetMessageEnumerator method, which returns a dynamic list of the messages in the queue.
О чем это говорит, а том, что GetAllMessages возвращает клонированный массив, а GetMessageEnumerator работает с массивом самой очереди. Но надо учитывать и в одном и в другом случае, что пока вы с этими массивами работаете очередь может 10 раз измениться :)
 
Статус
Закрыто для дальнейших ответов.