Gets or sets the maximum degree of parallelism enabled by this ParallelOptions instance.
Assembly: mscorlib (in mscorlib.dll)
The property is being set to zero or a value less than -1.
If the property is positive, it limits the number of concurrent operations run by Parallel method calls that are passed this ParallelOptions instance to the set value. If it is -1, there is no limit on the number of concurrently running operations.
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 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.