Эта настройка для ThreadPool вызовет 100 соединений, если вы «свободно» запустите 100 потоков, и потоки начнут работать практически мгновенно с вашей БД.
Одним из способов ограничения количества параллельных потоков, выполняющих работу, является использование Parallel.ForEach или Parallel.For, поскольку они предоставляют параметр ParallelOptions, в котором можно установить максимальную степень параллелизма:
Parallel.ForEach<string>(rows, new ParallelOptions() { MaxDegreeOfParallelism = batchSize},(row) => {
// your code here
} );
Parallel.For(0,100, new ParallelOptions() { MaxDegreeOfParallelism = batchSize }, i => {
//your code here
});
MaxDegreeOfParallelism ограничит одновременную работу значением batchSize, ожидая завершения пакета, прежде чем начинать новый до завершения.