Gets or sets the maximum degree of parallelism enabled by this System.Threading.Tasks.ParallelOptions instance.
Documentation for this section has not yet been entered.
If the ParallelOptions.MaxDegreeOfParallelism property is positive, it limits the number of concurrent operations run by System.Threading.Tasks.Parallel method calls that are passed this System.Threading.Tasks.ParallelOptions instance to the set value. If it is -1, there is no limit on the number of concurrently running operations.
By default, erload:System.Threading.Tasks.Parallel.For and erload:System.Threading.Tasks.Parallel.ForEach will utilize however many threads the underlying scheduler provides, so changing ParallelOptions.MaxDegreeOfParallelism from the default only limits how many concurrent tasks will be used.
Ordinarily, you do not need to modify this setting. However, you may choose to set it explicitly in advanced usage scenarios such as the following: , Or, if
You know that a particular algorithm you're using won't scale beyond a certain number of cores. You can set the property to avoid wasting cycles on additional cores.
You're running multiple algorithms concurrently and want to manually define how much of the system each can utilize. You can set a ParallelOptions.MaxDegreeOfParallelism value for each.
For certain workloads, the thread pool's heuristics may be unable to determine the right number of threads to use and could end up injecting too many threads. For example, in long-running loop body iterations, the thread pool may not be able to tell the difference between reasonable progress or livelock or deadlock, and may not be able to reclaim threads added to improve performance. In this case, you can set the property to ensure that you don't use more than a reasonable number of threads.