private async Task CreateTempQueueAndConsume(IChannel channel) { // declare temp queue var queueName = await channel.QueueDeclare("", passive : false, durable : false, exclusive : true, autoDelete : true, arguments : null, waitConfirmation : true); _queues[queueName.Name] = true; // // Console.WriteLine("Declared " + queueName); // Consume var consumerTag = await channel.BasicConsume(ConsumeMode.SingleThreaded, delivery => { // Console.WriteLine("delivery " + delivery.deliveryTag + " " + queueName.Name); return(Task.CompletedTask); }, queueName.Name, null, true, false, null, true); // give it some time await Task.Delay(10000); // Cancel consume _queues[queueName.Name] = false; bool val; _queues.TryRemove(queueName.Name, out val); await channel.BasicCancel(consumerTag, true); // // Console.WriteLine("Canceled for " + queueName); }