Как получить максимальную степень параллелизма при использовании библиотеки параллельных задач?

Я хочу использовать Parallel.invoke. Если я назначу 20 параллельных задач, только 8 из них будут запущены одновременно. Мой процессорhttp://ark.intel.com/products/47925 и сообщаемое число потоков равно 8. Я предполагаю, что количество задач, которые могут выполняться параллельно, связано с числом потоков процессора. Я не хочу создавать больше задач, чем количество потоков. Как мне узнать количество потоков в C #? Я попытался запрос ParallelOptions.MaxDegreeOfParallelism, и все, что я получаю, это -1.