title: Difference between StreamReader.Read and StreamReader.ReadBlock
body: <p>The documentation simply says ReadBlock is </p>
  
  <p>"a blocking version of Read"</p>
  
  <p>but what does that mean?</p>
  
  <p>Someone else has asked the question before but, huh?</p>
  
  <p><a href="http://www.pcreview.co.uk/forums/thread-1385785.php" rel="noreferrer">http://www.pcreview.co.uk/forums/thread-1385785.php</a></p>
  
  <p>The guy answering said</p>
  
  <blockquote>
    <p>Basically, it means that you can rely on StreamReader.ReadBlock not
    returning until either it's read as much as you've asked it to, or
    it's reached the end of the stream.</p>
  </blockquote>
  
  <p>Am I understanding correctly that this is required because Read may not give you everything you asked for?  And that just because it returns 0 does NOT mean you reached the end of the file?</p>
  
  <p>So this means check something other than the number of bytes returned (EndOfStream?) or use ReadBlock instead?</p>