ParallelOptions.MaxDegreeOfParallelism Propriedade

Definição

Obtém ou define o número máximo de tarefas concorrentes habilitadas por esta ParallelOptions instância.

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 Propriedade

Um inteiro que representa o grau máximo de paralelismo.

Exceções

A propriedade está a ser definida a zero ou a um valor inferior a -1.

Observações

A MaxDegreeOfParallelism propriedade afeta o número de operações concorrentes executadas por Parallel chamadas de método que são ultrapassadas nesta ParallelOptions instância. Um valor de propriedade positivo limita o número de operações simultâneas ao valor definido. Se for -1, não há limite para o número de operações em execução simultânea (com exceção do ForEachAsync método, onde -1 significa ProcessorCount).

Por defeito, For e ForEach utilizará quantos threads o agendador subjacente fornecer, por isso mudar MaxDegreeOfParallelism do padrão limita apenas o número de tarefas concorrentes que serão usadas.

Geralmente, não precisa de modificar esta definição. No entanto, pode optar por defini-lo explicitamente em cenários de uso avançado como estes:

  • Quando sabes que um determinado algoritmo que estás a usar não vai escalar para além de um certo número de núcleos. Podes definir a propriedade para evitar desperdiçar ciclos em núcleos adicionais.

  • Quando está a executar vários algoritmos em simultâneo e quer definir manualmente quanto do sistema cada algoritmo pode utilizar. Pode definir um MaxDegreeOfParallelism valor para cada um.

  • Quando a heurística do pool de threads não consegue determinar o número correto de threads a usar e pode acabar por injetar demasiadas threads. Por exemplo, em iterações longas do corpo do loop, o pool de threads pode não conseguir distinguir entre progresso razoável, livelock ou deadlock, e pode não conseguir recuperar threads adicionados para melhorar o desempenho. Neste caso, podes definir a propriedade para garantir que não usas mais do que um número razoável de threads.

Aplica-se a