Самый простой способ - использовать EventingBasicConsumer. У меня есть пример на моем сайте о том, как его использовать. RabbitMQ EventingBasicConsumer
Этот класс Consumer предоставляет полученное событие, которое вы можете использовать, и поэтому НЕ блокирует. Остальная часть кода в основном остается прежней.