Domanda

Uso la coda messaggi per inviare messaggi da un'applicazione all'altra (deve funzionare solo su una macchina specifica)

Creo la coda in questo modo sul lato ricevitore:

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

e successivamente avvio l'applicazione mittente, dove creo la coda in questo modo:

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

nell'applicazione ricevente Ricevo quindi nuovi messaggi:

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

Ora vorrei fare due cose:

Vorrei cancellare la coda dei messaggi quando si crea un'istanza della nuova istanza MessageQueue sulla macchina ricevente in modo che tutti i vecchi messaggi scompaiano. Vorrei eliminare la coda dei messaggi al termine del programma, in modo tale che non esista più se avvio l'applicazione la prossima volta

Come posso farlo?

È stato utile?

Soluzione

MessageQueue.Purge e < a href = "http://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.delete.aspx" rel = "nofollow noreferrer"> MessageQueue.Delete sembra essere quello che vuoi , a meno che non abbia letto male la domanda.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top