klar Message Queue in C #
-
05-07-2019 - |
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
startenWie kann ich das tun?
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.