ParallelOptions.MaxDegreeOfParallelism Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia maksymalną liczbę współbieżnych zadań włączonych przez to ParallelOptions wystąpienie.
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
Wartość właściwości
Liczba całkowita reprezentująca maksymalny stopień równoległości.
Wyjątki
Właściwość jest ustawiana na zero lub na wartość mniejszą niż -1.
Uwagi
Właściwość MaxDegreeOfParallelism ma wpływ na liczbę współbieżnych operacji uruchamianych według Parallel wywołań metody, które są przekazywane w tym ParallelOptions wystąpieniu. Wartość właściwości dodatniej ogranicza liczbę operacji współbieżnych do wartości ustawionej. Jeśli jest to wartość -1, nie ma limitu liczby równoczesnych uruchomionych operacji (z wyjątkiem ForEachAsync metody, gdzie -1 oznacza ProcessorCount).
Domyślnie For i ForEach będzie korzystać z wielu wątków, które zapewnia bazowy harmonogram, więc zmiana MaxDegreeOfParallelism z domyślnych ogranicza tylko liczbę współbieżnych zadań.
Ogólnie rzecz biorąc, nie trzeba modyfikować tego ustawienia. Można jednak jawnie ustawić ją w zaawansowanych scenariuszach użycia, takich jak:
Gdy wiesz, że określony algorytm, którego używasz, nie będzie skalowany poza określoną liczbę rdzeni. Właściwość można ustawić, aby uniknąć marnowania cykli na dodatkowych rdzeniach.
Gdy uruchamiasz wiele algorytmów jednocześnie i chcesz ręcznie zdefiniować, ile systemu może wykorzystać każdy algorytm. Dla każdej z nich można ustawić MaxDegreeOfParallelism wartość.
Gdy heurystyka puli wątków nie może określić odpowiedniej liczby wątków do użycia i może skończyć się wstrzykiwaniem zbyt wielu wątków. Na przykład w przypadku iteracji treści pętli długotrwałej pula wątków może nie być w stanie określić różnicy między rozsądnym postępem, blokadą lub zakleszczeniem, a może nie być w stanie odzyskać wątków, które zostały dodane w celu zwiększenia wydajności. W takim przypadku można ustawić właściwość, aby upewnić się, że nie używasz więcej niż rozsądnej liczby wątków.