В приведенном ниже коде _model.BasicConsume вызывается до того, как сообщения, полученные через событие consumer.received, получат сообщение. Таким образом, он очищает все элементы очереди от события, которое запускается, а затем последующее событие запускается асинхронно. Как я могу убедиться, что только элементы, полученные через триггер события, потребляются в очереди один за другим, а не все вместе?
public static void ReceiveMessages()
{
var consumer = new RabbitMQ.Client.Events.EventingBasicConsumer(_model);
Console.WriteLine(" [*] Waiting for messages...");
consumer.Received += (Payment, ea) =>
{
var body = ea.Body;
var message = (Payment)body.ToArray().DeSerialize(typeof(Payment));
Console.WriteLine($"Message is : {message.CardNumber} : {message.Name} : {message.Amount}");
};
_model.BasicConsume(QueueName, true, consumer);
Console.WriteLine(" Press enter to exit...");
Console.ReadLine();
}