MessageQueue y Async / Await

¡Solo quiero recibir mi mensaje en un método asíncrono! y está congelando mi interfaz de usuario

    public async void ProcessMessages()
    {
        MessageQueue MyMessageQueue = new MessageQueue(@".\private$\MyTransactionalQueue");
        MyMessageQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });

        while (true)
        {
            MessageQueueTransaction MessageQueueTransaction = new MessageQueueTransaction();
            MessageQueueTransaction.Begin();

            ContainError = false;
            ProcessPanel.SetWaiting();

            string Body = MyMessageQueue.Receive(MessageQueueTransaction).Body.ToString();

            //Do some process with body string.

            MessageQueueTransaction.Commit();
        }
    }

¡Simplemente estoy llamando al método como a cualquier método regular y sus números no funcionan! Este código solía funcionar cuando estaba usando BackgroundWorkers en lugar de async / await

Ideas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta