Ile wątków Równoległych. Dla (Foreach) stworzy? Domyślnie MaxDegreeOfParallelism?
Chcę wiedzieć, ile wątków zostanie użytych podczas uruchamiania pętli Parallel.For / ForEach.
Odkryłem, że można go zmienić za pomocą opcji MaxDegreeOfParallelism.
Pomoc MaxDegreeOfParallelism w MSDN mówi (połączyć):
Domyślnie, For i ForEach wykorzystają jednak wiele wątków udostępnianych przez podstawowy program planujący, więc zmiana MaxDegreeOfParallelism z domyślnego ogranicza tylko liczbę jednoczesnych zadań, które zostaną użyte.
Ale nie wiem, ile wątków zapewnia program planujący.
Jak mogę się tego dowiedzieć?
Mogłem przetestować go za pomocą pętli z uruchomieniami 9999999, jednak ten test pokaże mi liczbę, ale nie regułę określającą tę liczbę.
Edytuj / dodano później:
Wyszukałem hasło „współbieżność maks. Sheduler” i znalazłem (w witrynie MSDN -połączyć), toTashSheduler
klasa maMaximumConcurrencyLevel
własność i:
Zwraca liczbę całkowitą reprezentującą maksymalny poziom współbieżności. Domyślny program planujący zwraca Int32.MaxValue.
Ta klasa TaskSheduler jest używana jako „podstawowy harmonogram” dla tych równoległych pętli?