title: Why does Console.In.ReadLineAsync block?
body: <p>Start a new console app using the following code -</p>
  
  <pre><code>class Program
  {
      static void Main(string[] args)
      {
          while (true)
          {
              Task&lt;string&gt; readLineTask = Console.In.ReadLineAsync();
  
              Debug.WriteLine("hi");
          }
      }
  }
  </code></pre>
  
  <p>Console.In.ReadLineAsync is blocking and doesn't return until a line is entered in the console.. so "Hi" never gets written to the console.</p>
  
  <p>Using await on Console.In.ReadLineAsync also blocks.</p>
  
  <p>It was my understanding that the new Async CTP methods do not block.</p>
  
  <p>What is the reason for this?</p>
  
  <hr>
  
  <p>Here is another example</p>
  
  <pre><code>static void Main(string[] args)
  {
      Task delayTask = Task.Delay(50000);
  
      Debug.WriteLine("hi");
  }
  </code></pre>
  
  <p>This behaves as I expect, it goes straight to the next line and prints "hi" since Task.Delay does not block.</p>