ParallelOptions.MaxDegreeOfParallelism Eigenschaft

Definition

Ruft die maximale Anzahl paralleler Aufgaben ab, die durch diese ParallelOptions-Instanz aktiviert ist, oder legt diese fest.Gets or sets the maximum number of concurrent tasks enabled by this ParallelOptions instance.

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

Eine ganze Zahl, die den maximalen Parallelitätsgrad darstellt.An integer that represents the maximum degree of parallelism.

Ausnahmen

Die Eigenschaft wird auf 0 (null) oder einen Wert kleiner als -1 festgelegt.The property is being set to zero or to a value that is less than -1.

Hinweise

Die MaxDegreeOfParallelism -Eigenschaft wirkt sich auf die Anzahl von gleich Parallel zeitigen Vorgängen aus, die ParallelOptions von Methoden aufrufen ausgeführt werden, die dieser InstanzThe MaxDegreeOfParallelism property affects the number of concurrent operations run by Parallel method calls that are passed this ParallelOptions instance. Ein positiver Eigenschafts Wert schränkt die Anzahl der gleichzeitigen Vorgänge auf den festgelegten Wert ein.A positive property value limits the number of concurrent operations to the set value. Wenn der Wert-1 ist, gibt es keine Beschränkung für die Anzahl von gleichzeitig ausgeführten Vorgängen.If it is -1, there is no limit on the number of concurrently running operations.

Standardmäßig For werden von ForEach und jedoch viele Threads verwendet, die der zugrunde liegende Scheduler bereit MaxDegreeOfParallelism stellt. durch das Ändern der Standardeinstellung wird daher nur die Anzahl der gleichzeitigen Aufgaben beschränkt.By default, For and ForEach will utilize however many threads the underlying scheduler provides, so changing MaxDegreeOfParallelism from the default only limits how many concurrent tasks will be used.

Im Allgemeinen müssen Sie diese Einstellung nicht ändern.Generally, you do not need to modify this setting. Allerdings können Sie diese explizit in erweiterten Verwendungs Szenarien wie den folgenden festlegen:However, you may choose to set it explicitly in advanced usage scenarios such as these:

  • Wenn Sie wissen, dass ein bestimmter Algorithmus, den Sie verwenden, nicht über eine bestimmte Anzahl von Kernen hinaus skaliert werden.When you know that a particular algorithm you're using won't scale beyond a certain number of cores. Sie können die-Eigenschaft festlegen, um zu vermeiden, dass Zyklen für zusätzliche Kerne verschwendet werden.You can set the property to avoid wasting cycles on additional cores.

  • Wenn Sie mehrere Algorithmen gleichzeitig ausführen und manuell definieren möchten, wie viel des Systems von den einzelnen Algorithmen verwendet werden kann.When you're running multiple algorithms concurrently and want to manually define how much of the system each algorithm can utilize. Sie können jeweils einen MaxDegreeOfParallelism Wert festlegen.You can set a MaxDegreeOfParallelism value for each.

  • Wenn die Heuristik des Thread Pools nicht die richtige Anzahl der zu verwendenden Threads ermitteln kann und möglicherweise zu viele Threads eingefügt werden.When the thread pool's heuristics is unable to determine the right number of threads to use and could end up injecting too many threads. Beispielsweise kann der Thread Pool in Schleifen Text Iterationen mit langer Laufzeit den Unterschied zwischen dem angemessenen Status oder dem Deadlock oder Deadlock nicht ermitteln und kann ggf. keine Threads freigeben, die hinzugefügt wurden, um die Leistung zu verbessern.For example, in long-running loop body iterations, the thread pool might not be able to tell the difference between reasonable progress or livelock or deadlock, and might not be able to reclaim threads that were added to improve performance. In diesem Fall können Sie die-Eigenschaft festlegen, um sicherzustellen, dass Sie nicht mehr als eine angemessene Anzahl von Threads verwenden.In this case, you can set the property to ensure that you don't use more than a reasonable number of threads.

Gilt für: