How can I limit Parallel.ForEach?
You can use ParallelOptions and set MaxDegreeOfParallelism to limit the number of concurrent threads:
Parallel.ForEach(
listOfwebpages,
new ParallelOptions{MaxDegreeOfParallelism=2},
webpage => {Download(webpage);});
Use another overload of Parallel.Foreach
that takes a ParallelOptions
instance, and set MaxDegreeOfParallelism
to limit how many instances execute in parallel.
You can specify a MaxDegreeOfParallelism
in a ParallelOptions
parameter:
Parallel.ForEach(
listOfWebpages,
new ParallelOptions { MaxDegreeOfParallelism = 4 },
webpage => { Download(webpage); }
);
MSDN: Parallel.ForEach
MSDN: ParallelOptions.MaxDegreeOfParallelism