Gets or sets the maximum number of concurrent tasks enabled by this ParallelOptions instance.
Assemblies: System.Threading.Tasks.Parallel (in System.Threading.Tasks.Parallel.dll)
mscorlib (in mscorlib.dll)
The property is being set to zero or to a value that is less than -1.
The property affects the number of concurrent operations run by Parallel method calls that are passed this ParallelOptions instance. A positive property value limits the number of concurrent operations to the set value. If it is -1, there is no limit on the number of concurrently running operations.
Generally, you do not need to modify this setting. However, you may choose to set it explicitly in advanced usage scenarios such as these:
When 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.
When you're running multiple algorithms concurrently and want to manually define how much of the system each algorithm can utilize. You can set a value for each.
When the thread pool's heuristics is 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 might not be able to tell the difference between reasonable progress or livelock or deadlock, and might not be able to reclaim threads that were 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.