title: Stream reading with await async
body: <p>I have written the following method to read data from a stream in general. On my computer it's gonna be a MemoryStream, and in the real world, it's gonna be a network stream.</p>
  
  <pre><code>    public async void ReadAsync()
      {
          byte[] data = new byte[1024];
          int numBytesRead = await _stream.ReadAsync(data, 0, 1024);
  
          // Process data ...
  
          // Read again.
          ReadAsync();
      }
  </code></pre>
  
  <p>The idea here is that data gets processed in the callback, and the callback should then spawn a new reader-thread (and kill the old).
  This does not happen however. I get a StackOverflowException. </p>
  
  <p>What am I doing wrong?</p>