title: await Console.ReadLine()
body: <p>I am currently building an asynchronous console application in which I have created classes to handle separate areas of the application.</p>
  
  <p>I have created an InputHandler class which I envisioned would await Console.ReadLine() input. However, you cannot await such a function (since it is not async), my current solution is to simply:</p>
  
  <pre><code>private async Task&lt;string&gt; GetInputAsync() {
      return Task.Run(() =&gt; Console.ReadLine())
  }
  </code></pre>
  
  <p>which runs perfectly fine. However, my (limited) understanding is that calling Task.Run will fire off a new (parallel?) thread. This defeats the purpose of async methods since that new thread is now being blocked until Readline() returns right?</p>
  
  <p>I know that threads are an expensive resource so I feel really wasteful and hacky doing this. I also tried Console.In.ReadLineAsync() but it is apparently buggy? (It seems to hang).</p>