Aman Bhullar Ответов: 1

Как получить очередь сообщений MSMQ использование жесткого диска?


Привет,

У меня есть требование получить диск, используемый очередью сообщений в C#, так как входящий объем очереди очень высок. Есть ли какой - нибудь способ получить использование диска MSMQ?

Что я уже пробовал:

Я нашел способ получить количество сообщений в очереди, но ничего о размере очереди.

1 Ответов

Рейтинг:
0

phil.o

MessageQueue класс имеет а GetAllMessages() который возвращает массив из Message экземпляры.
Как только вы получите этот массив, инициализируйте переменную счетчика в ноль. Затем выполните цикл по всем сообщениям в массиве и используйте BodyStream собственность компании Message экземпляр для получения ссылки на базовый поток. Наконец, используйте Length свойство потока получить его длину (в байтах) и добавить ее в счетчик.

Message[] messages = queue.GetAllMessages();
long total = 0;
foreach (Message message in messages)
{
   total += message?.BodyStream?.Length;
}