title: RabbitMQ asynchronous support
body: <p>Does the RabbitMQ .NET client have any sort of asynchronous support? I'd like to be able to connect and consume messages asynchronously, but haven't found a way to do either so far.</p>
  
  <p><em>(For consuming messages I can use the EventingBasicConsumer, but that's not a complete solution.)</em></p>
  
  <p>Just to give some context, this is an example of how I'm working with RabbitMQ at the moment (code taken from my blog):</p>
  
  <pre><code>var factory = new ConnectionFactory() { HostName = "localhost" };
  
  using (var connection = factory.CreateConnection())
  {
      using (var channel = connection.CreateModel())
      {
          channel.QueueDeclare("testqueue", true, false, false, null);
  
          var consumer = new EventingBasicConsumer(channel);
          consumer.Received += Consumer_Received;
          channel.BasicConsume("testqueue", true, consumer);
  
          Console.ReadLine();
      }
  }
  </code></pre>