ParallelOptions.MaxDegreeOfParallelism Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta il numero massimo di attività simultanee abilitate da questa ParallelOptions istanza.
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
Valore della proprietà
Intero che rappresenta il grado massimo di parallelismo.
Eccezioni
La proprietà viene impostata su zero o su un valore minore di -1.
Commenti
La MaxDegreeOfParallelism proprietà influisce sul numero di operazioni simultanee eseguite dalle Parallel chiamate al metodo passate a questa ParallelOptions istanza. Un valore di proprietà positivo limita il numero di operazioni simultanee al valore impostato. Se è -1, non esiste alcun limite per il numero di operazioni in esecuzione simultanea (ad eccezione del ForEachAsync metodo , dove -1 significa ProcessorCount).
Per impostazione predefinita, For e ForEach utilizzerà il numero di thread forniti dall'utilità di pianificazione sottostante, pertanto la modifica MaxDegreeOfParallelism rispetto all'impostazione predefinita limita solo il numero di attività simultanee che verranno usate.
In genere, non è necessario modificare questa impostazione. Tuttavia, è possibile scegliere di impostarlo in modo esplicito in scenari di utilizzo avanzati, ad esempio:
Quando si sa che un particolare algoritmo in uso non verrà ridimensionato oltre un determinato numero di core. È possibile impostare la proprietà per evitare di sprecare cicli su core aggiuntivi.
Quando si eseguono più algoritmi contemporaneamente e si vuole definire manualmente la quantità di sistema che ogni algoritmo può usare. È possibile impostare un MaxDegreeOfParallelism valore per ognuno di essi.
Quando l'euristica del pool di thread non è in grado di determinare il numero corretto di thread da usare e potrebbe terminare l'inserimento di troppi thread. Ad esempio, nelle iterazioni del corpo del ciclo a esecuzione prolungata, il pool di thread potrebbe non essere in grado di indicare la differenza tra avanzamento ragionevole o livelock o deadlock e potrebbe non essere in grado di recuperare thread aggiunti per migliorare le prestazioni. In questo caso, è possibile impostare la proprietà per assicurarsi di non usare più di un numero ragionevole di thread.