Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


ParallelOptions.MaxDegreeOfParallelism Właściwość

Definicja

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.

Dotyczy

Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0