Frage

Ich verwende die Message Queue-Nachrichten von einer Anwendung zur anderen senden (dies nur auf einer bestimmten Maschine arbeiten muss)

Ich schaffe die Warteschlange, wie dies auf der Empfängerseite:

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

und danach ich den Absender Anwendung zu starten, wo ich die Warteschlange so zu erstellen:

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

in der Receiver-Anwendung ich dann neue Nachrichten abrufen:

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

Nun möchte Ich mag zwei Dinge tun:

Ich mag die Nachrichtenwarteschlange löschen, wenn die neue Message Instanz auf dem Empfängergerät instanziieren, so dass alle alten Nachrichten verschwunden sind. Ich mag die Nachrichtenwarteschlange löschen, wenn das Programm beendet wird, so dass es nicht mehr gibt, wenn ich die Anwendung das nächste Mal

starten

Wie kann ich das tun?

War es hilfreich?

Lösung

MessageQueue.Purge und < a href = "http://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.delete.aspx" rel = "nofollow noreferrer"> MessageQueue.Delete zu sein scheinen, was Sie wollen , es sei denn, ich die Frage falsch verstanden haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top