我使用Message Queue将消息从一个应用程序发送到另一个应用程序(这只能在一台特定的机器上运行)

我在接收器端创建这样的队列:

        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实例时清除消息队列,以便所有旧消息都消失。 我希望在程序结束时删除消息队列,这样如果我下次启动应用程序它就不再存在

我该怎么做?

有帮助吗?

解决方案

MessageQueue.Purge 和< a href =“http://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.delete.aspx”rel =“nofollow noreferrer”> MessageQueue.Delete 似乎是你想要的除非我误解了这个问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top