title: best use of Parallel.ForEach / Multithreading
body: <p>I need to scrape data from a website. 
  I have over 1,000 links I need to access, and previously I was dividing the links 10 per thread, and would start 100 threads each pulling 10.  After few test cases, 100 threads was the best count to minimize the time it retrieved the content for all the links.</p>
  
  <p>I realized that .NET 4.0 offered better support for multi-threading out of the box, but this is done based on how many cores you have, which in my case does not spawn enough threads.  I guess what I am asking is: what is the best way to optimize the 1,000 link pulling.  Should I be using <code>.ForEach</code> and let the <code>Parallel</code> extension control the amount threads that get spawned, or find a way to tell it how many threads to start and divide the work?  </p>
  
  <p>I have not worked with <code>Parallel</code> before so maybe my approach maybe wrong.</p>