ParallelOptions.MaxDegreeOfParallelism Właściwość
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
Liczba całkowita reprezentująca maksymalny stopień równoległości.
Właściwość jest ustawiana na zero lub na wartość mniejszą niż -1.
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.
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 |
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: