Вы в настоящее время блокируете Consumer.Queue.Dequeue ().Если я правильно понимаю ваш вопрос, вы хотите асинхронно потреблять сообщения.
Стандартный способ сделать это - написать свой собственный IBasicConsumer (возможно, с помощью подкласса DefaultBasicConsumer ) и устанавливают его в качестве потребителя для канала.
Проблема в том, что вы должны быть очень осторожными в том, что высделать в IBasicConsumer.HandleBasicDelivery.Если вы используете какие-либо синхронные методы AMQP, такие как basic.publish, вы получите взаимоблокировку.Если вы делаете что-то, что занимает много времени, вы столкнетесь с некоторыми другими проблемами.
Если вам нужны синхронные методы или длительные действия, то вы делаете то, что вы делаете правильно.,Взгляните на Подписка ;это IBasicConsumer, который потребляет сообщения и помещает их в очередь для вас.
Если вам нужна дополнительная помощь, вам следует обратиться к списку рассылки rabbitmq-обсуждения.