title: How to write Asynchronous LINQ query?
body: <p>After I read a bunch of LINQ related stuff, I suddenly realized that no articles introduce how to write asynchronous LINQ query. </p>
  
  <p>Suppose we use LINQ to SQL, below statement is clear. However, if the SQL database responds slowly, then the thread using this block of code would be hindered.</p>
  
  <pre><code>var result = from item in Products where item.Price &gt; 3 select item.Name;
  foreach (var name in result)
  {
      Console.WriteLine(name);
  }
  </code></pre>
  
  <p>Seems that current LINQ query spec doesn't provide support to this.</p>
  
  <p>Is there any way to do asynchronous programming LINQ? It works like there is a callback 
  notification when results are ready to use without any blocking delay on I/O.</p>