ParallelOptions.MaxDegreeOfParallelism Eigenschap

Definitie

Hiermee haalt u het maximum aantal gelijktijdige taken op dat door dit ParallelOptions exemplaar is ingeschakeld.

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

Waarde van eigenschap

Een geheel getal dat de maximale mate van parallelle uitvoering aangeeft.

Uitzonderingen

De eigenschap wordt ingesteld op nul of op een waarde die kleiner is dan -1.

Opmerkingen

De MaxDegreeOfParallelism eigenschap is van invloed op het aantal gelijktijdige bewerkingen dat wordt uitgevoerd door Parallel methodeaanroepen die worden doorgegeven aan dit ParallelOptions exemplaar. Een positieve eigenschapswaarde beperkt het aantal gelijktijdige bewerkingen tot de ingestelde waarde. Als dit -1 is, is er geen limiet voor het aantal gelijktijdig uitgevoerde bewerkingen (met uitzondering van de ForEachAsync methode, waarbij -1 betekent ProcessorCount).

Standaard worden ForEach er echter veel threads gebruikt die de onderliggende scheduler biedt, dus als u de MaxDegreeOfParallelism standaardinstelling wijzigt, For wordt alleen beperkt hoeveel gelijktijdige taken worden gebruikt.

Over het algemeen hoeft u deze instelling niet te wijzigen. U kunt er echter voor kiezen om deze expliciet in te stellen in geavanceerde gebruiksscenario's, zoals deze:

  • Wanneer u weet dat een bepaald algoritme dat u gebruikt, niet groter wordt dan een bepaald aantal kernen. U kunt de eigenschap instellen om cycli op extra kernen te voorkomen.

  • Wanneer u meerdere algoritmen tegelijk uitvoert en handmatig wilt definiëren hoeveel van het systeem elk algoritme kan gebruiken. U kunt voor elke waarde een MaxDegreeOfParallelism waarde instellen.

  • Wanneer de heuristiek van de threadpool niet kan bepalen hoeveel threads moeten worden gebruikt en er te veel threads kunnen worden geïnjecteerd. In langlopende herhalingen van looplussen kan de threadpool bijvoorbeeld het verschil tussen redelijke voortgang of livelock of impasse niet zien en kan de threads die zijn toegevoegd om de prestaties te verbeteren, mogelijk niet vrijmaken. In dit geval kunt u de eigenschap instellen om ervoor te zorgen dat u niet meer dan een redelijk aantal threads gebruikt.

Van toepassing op