title: Asynchronous foreach
body: <p>is there a way for an Asynchronous foreach in C#?
  where id(s) will be processed asynchronously by the method, instead of using <strong>Parallel.ForEach</strong></p>
  
  <pre><code>//This Gets all the ID(s)-IEnumerable &lt;int&gt;
  var clientIds = new Clients().GetAllClientIds(); 
  
  Parallel.ForEach(clientIds, ProcessId); //runs the method in parallel
  
  static void ProcessId(int id)
  {
  // just process the id  
  }
  </code></pre>
  
  <p>should be something a foreach but runs asynchronously</p>
  
  <pre><code>foreach(var id in clientIds)
  {
     ProcessId(id) //runs the method with each Id asynchronously??
  }
  </code></pre>
  
  <p>i'm trying to run the Program in Console, it should wait for all id(s) to  complete processing before closing the Console. </p>