title: C# Parallel.ForEach does not use the available CPU power
body: <p>I am running an application on a four core machine and it maxes out at around 14% CPU usage and stays there rather constantly.</p>
  
  <pre><code>Parallel.ForEach(pages,
      new ParallelOptions { },
        page =&gt;
        {
           // do some CPU intensive stuff
        });
  </code></pre>
  
  <p>Only if I start several instances of the application do I get over 14%. By doing that I can get close to 100% in total.</p>
  
  <p><strong>Why doesn't Parallel.ForEach do the task parallel enough to use all of the CPU?</strong></p>
  
  <p>I am running C# .NET 4.5.1.</p>