質問

メッセージキューを使用して、1つのアプリケーションから別のアプリケーションにメッセージを送信します(これは1つの特定のマシンでのみ動作する必要があります)

受信側で次のようにキューを作成します:

        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();
        }

今、私は2つのことをしたいです

古いメッセージがすべてなくなるように、受信側マシンで新しい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