title: How to Perform Asynchronous File Reads in C# 2.0?
body: <p>I have an application which needs to loop through all the lines in text files, over gigabytes in size.  Some of these files have 10's or 100's of millions of lines.</p>
  
  <p>An example of my current (and synchronous) reading, looks something like...</p>
  
  <pre><code>  using (FileStream stream = new FileStream(args[0], FileMode.Open, FileAccess.Read, FileShare.Read)) {
      using (StreamReader streamReader = new StreamReader(stream)) {
        string line;
        while (!string.IsNullOrEmpty(line = streamReader.ReadLine())) {           
          //do stuff with the line string...
        }
      }
    }
  </code></pre>
  
  <p>I have read some stuff about the .Net Asynchronous IO streaming methods, and I am after some help with 2 specific questions regarding this issue.</p>
  
  <p>First, will I get a performance boost by asyncronously reading these files, if I need the entireity of each line, which are ussually short, but of varying lengths (there is no relationship between each of the lines in the file)?</p>
  
  <p>Second, How do I convert the code above, into an async read, so I can process each line-by-line, as I do now?  </p>