Sdílet prostřednictvím


ParallelOptions.MaxDegreeOfParallelism Vlastnost

Definice

Získá nebo nastaví maximální počet souběžných úloh povolených touto ParallelOptions instancí.

public:
 property int MaxDegreeOfParallelism { int get(); void set(int value); };
public int MaxDegreeOfParallelism { get; set; }
member this.MaxDegreeOfParallelism : int with get, set
Public Property MaxDegreeOfParallelism As Integer

Hodnota vlastnosti

Celé číslo, které představuje maximální stupeň paralelismu.

Výjimky

Vlastnost je nastavena na nulu nebo na hodnotu, která je menší než -1.

Poznámky

Vlastnost MaxDegreeOfParallelism ovlivňuje počet souběžných operací spuštěných voláními Parallel metody, které jsou předány této ParallelOptions instanci. Kladná hodnota vlastnosti omezuje počet souběžných operací na stanovenou hodnotu. Pokud je -1, neexistuje žádné omezení počtu souběžně spuštěných operací (s výjimkou ForEachAsync metody, kde -1 znamená ProcessorCount).

Ve výchozím nastavení For a ForEach bude však využívat mnoho vláken, které základní plánovač poskytuje, takže změna MaxDegreeOfParallelism z výchozího nastavení omezuje, kolik souběžných úloh se použije.

Obecně platí, že toto nastavení nemusíte upravovat. Můžete se ale rozhodnout ho explicitně nastavit v pokročilých scénářích použití, například v těchto případech:

  • Když víte, že konkrétní algoritmus, který používáte, se nebude škálovat nad rámec určitého počtu jader. Vlastnost můžete nastavit tak, aby se zabránilo plýtvání cykly na dalších jádrech.

  • Při souběžném spouštění více algoritmů a chcete ručně definovat, kolik systému může každý algoritmus využívat. Pro každou z nich můžete nastavit MaxDegreeOfParallelism hodnotu.

  • Pokud heuristika fondu vláken nedokáže určit správný počet vláken, která se mají použít, a může nakonec vložit příliš mnoho vláken. Například v dlouhotrvajících iteracích smyček nemusí fond vláken zjistit rozdíl mezi přiměřeným průběhem nebo vzájemným zablokováním nebo zablokováním a nemusí být schopen uvolnit vlákna, která byla přidána za účelem zlepšení výkonu. V tomto případě můžete nastavit vlastnost, abyste zajistili, že nepoužíváte více než přiměřený počet vláken.

Platí pro