title: What does MaxDegreeOfParallelism do?
body: <p>I am using Parallel.ForEach and I am doing some database updates, now without setting MaxDegreeOfParallelism , a dual core processor machine results in sql client timeouts, where else quad core processor machine somehow does not timeout.</p>
  
  <p>Now I have no control over what kind of processor cores are available where my code runs, but is there some settings I can change with MaxDegreeOfParallelism that will probably run less operations simultaneously and not result in timeouts?</p>
  
  <p>I can increase timeouts but it isnt a good solution, if on lower CPU I can process less operations simultaneously, that will put less load on cpu.</p>
  
  <p>Ok I have read all other posts and MSDN too, but will setting MaxDegreeOfParallelism to lower value make my quad core machines suffer?</p>
  
  <p>For example, is there anyway to do something like, if CPU has two cores, then use 20, if CPU has four cores then 40?</p>