ParallelOptions.MaxDegreeOfParallelism Eigenschaft

Definition

Ruft die maximale Anzahl paralleler Aufgaben ab, die durch diese ParallelOptions-Instanz aktiviert ist, oder legt diese fest.

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

Eigenschaftswert

Int32

Eine ganze Zahl, die den maximalen Parallelitätsgrad darstellt.

Ausnahmen

Die Eigenschaft wird auf 0 (null) oder einen Wert kleiner als -1 festgelegt.

Hinweise

Die MaxDegreeOfParallelism Eigenschaft wirkt sich auf die Anzahl gleichzeitiger Vorgänge aus, die von Parallel Methodenaufrufen ausgeführt werden, die diese ParallelOptions Instanz übergeben werden. Ein positiver Eigenschaftswert beschränkt die Anzahl der gleichzeitigen Vorgänge auf den festgelegten Wert. Wenn es -1 ist, gibt es kein Limit für die Anzahl gleichzeitig ausgeführter Vorgänge (mit Ausnahme der ForEachAsync Methode, wobei -1 bedeutet ProcessorCount).

Standardmäßig werden jedoch viele Threads verwendet, For ForEach die dem zugrunde liegenden Zeitplaner zur Verfügung stehen, sodass das Ändern MaxDegreeOfParallelism aus dem Standard nur die Anzahl gleichzeitiger Vorgänge beschränkt.

In der Regel müssen Sie diese Einstellung nicht ändern. Sie können es jedoch in erweiterten Verwendungsszenarien explizit festlegen, z. B. in folgenden:

  • Wenn Sie wissen, dass ein bestimmter Algorithmus, den Sie verwenden, nicht über eine bestimmte Anzahl von Kernen hinaus skaliert wird. Sie können die Eigenschaft festlegen, um Zyklen für zusätzliche Kerne zu vermeiden.

  • Wenn Sie mehrere Algorithmen gleichzeitig ausführen und manuell definieren möchten, wie viel des Systems jeder Algorithmus nutzen kann. Sie können einen MaxDegreeOfParallelism Wert für jede festlegen.

  • Wenn die Heuristik des Threadpools nicht die richtige Anzahl der zu verwendenden Threads ermitteln und zu viele Threads einfügen kann. In langen Schleifentext-Iterationen kann der Threadpool z. B. den Unterschied zwischen vernünftigem Fortschritt oder Livelock oder Deadlock nicht erkennen und kann möglicherweise keine Threads zurückgeben, die zur Verbesserung der Leistung hinzugefügt wurden. In diesem Fall können Sie die Eigenschaft so festlegen, dass Sie nicht mehr als eine angemessene Anzahl von Threads verwenden.

Gilt für: