ParallelOptions.MaxDegreeOfParallelism Propiedad

Definición

Obtiene o establece el número máximo de tareas simultáneas habilitadas por esta instancia ParallelOptions.

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

Valor de propiedad

Entero que representa el grado máximo de paralelismo.

Excepciones

La propiedad se establece en cero o en un valor que es menor que -1.

Comentarios

La MaxDegreeOfParallelism propiedad afecta al número de operaciones simultáneas ejecutadas por Parallel llamadas de método que se pasan a esta ParallelOptions instancia. Un valor de propiedad positivo limita el número de operaciones simultáneas al valor establecido. Si es -1, no hay ningún límite en el número de operaciones en ejecución simultáneas (con la excepción del ForEachAsync método , donde -1 significa ProcessorCount).

De forma predeterminada, For y ForEach usará muchos subprocesos que proporciona el programador subyacente, por lo que cambiar MaxDegreeOfParallelism de los límites predeterminados solo limita el número de tareas simultáneas que se usarán.

Por lo general, no es necesario modificar esta configuración. Sin embargo, puede optar por establecerlo explícitamente en escenarios de uso avanzados, como estos:

  • Cuando sepa que un algoritmo determinado que está usando no se escalará más allá de un determinado número de núcleos. Puede establecer la propiedad para evitar perder ciclos en núcleos adicionales.

  • Cuando se ejecutan varios algoritmos simultáneamente y se desea definir manualmente cuánto puede usar cada algoritmo del sistema. Puede establecer un MaxDegreeOfParallelism valor para cada uno.

  • Cuando la heurística del grupo de subprocesos no puede determinar el número correcto de subprocesos que se van a usar y podría acabar insertando demasiados subprocesos. Por ejemplo, en iteraciones de cuerpo de bucle de ejecución prolongada, es posible que el grupo de subprocesos no pueda indicar la diferencia entre el progreso razonable, el interbloqueo o el interbloqueo, y es posible que no pueda reclamar subprocesos que se agregaron para mejorar el rendimiento. En este caso, puede establecer la propiedad para asegurarse de que no use más de un número razonable de subprocesos.

Se aplica a