очистить очередь сообщений в C # - PullRequest
1 голос
/ 26 ноября 2009

Я использую очередь сообщений для отправки сообщений из одного приложения в другое (это должно работать только на одном конкретном компьютере)

Я создаю очередь вот так на стороне получателя:

        string queueName = ".\\private$\\WZMSGQ";
        if (MessageQueue.Exists(queueName))
            msgQueue = new MessageQueue(queueName);
        else
            msgQueue = MessageQueue.Create(queueName, false);

и после этого я запускаю приложение отправителя, где создаю следующую очередь:

        msgQueue = new MessageQueue(".\\private$\\WZMSGQ");

в приложении получателя я затем получаю новые сообщения:

        Message[] messages = msgQueue.GetAllMessages();
        foreach (Message msg in messages){
             doSomething();
        }

Теперь я хотел бы сделать две вещи:

Я хотел бы очистить очередь сообщений при создании экземпляра нового экземпляра MessageQueue на компьютере-получателе, чтобы все старые сообщения исчезли. Я хотел бы удалить очередь сообщений, когда программа заканчивается, чтобы она больше не существовала, если я запущу приложение в следующий раз

Как я могу это сделать?

1 Ответ

3 голосов
/ 26 ноября 2009

MessageQueue.Purge и MessageQueue.Delete , кажется, то, что вы хотите, если я не неправильно понял вопрос.

...