Pregunta

Uso la Cola de mensajes para enviar mensajes de una aplicación a la otra (esto solo funciona en una máquina en particular)

Creo la cola así en el lado del receptor:

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

y después de esto comienzo la aplicación del remitente, donde creo la cola así:

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

en la aplicación del receptor luego recupero nuevos mensajes:

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

Ahora me gustaría hacer dos cosas:

Me gustaría borrar la cola de mensajes al crear una instancia de la nueva instancia de MessageQueue en la máquina del receptor, de modo que todos los mensajes antiguos hayan desaparecido. Me gustaría eliminar la cola de mensajes cuando finalice el programa, de modo que ya no exista si inicio la aplicación la próxima vez

¿Cómo puedo hacer eso?

¿Fue útil?

Solución

MessageQueue.Purge y < a href = "http://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.delete.aspx" rel = "nofollow noreferrer"> MessageQueue.Delete parece ser lo que deseas , a menos que haya leído mal la pregunta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top