Zagnieżdżone pętle Parallel.ForEach
Mam pewien kod, który aktualnie optymalizuję pod kątem współbieżności w architekturach wielordzeniowych. W jednej z moich klas znalazłem zagnieżdżonąforeach
pętla. Zasadniczo zewnętrzna pętla iteruje przez tablicęNetworkInterface
przedmioty. Wewnętrzna pętla iteruje, mimo że sieć łączy adresy IP.
Pomyślałam, że zagnieździłam sięParallel.ForEach
pętle koniecznie dobry pomysł? Po przeczytaniu tego artykułu (Nested Parallel.ForEach Loops na tej samej liście?) Nadal nie jestem pewien, co ma zastosowanie, jeśli chodzi o wydajność i równoległe projektowanie. Ten przykład się zajmujeParallel.Foreach
instrukcje stosowane do listy, w której obie pętle wykonują operacje na tej liście.
W moim przykładzie pętle robią różne rzeczy, więc powinienem:
Użyj zagnieżdżonych pętli Parallel.ForEach?User Parallel.ForEach na pętli nadrzędnej i pozostawić wewnętrzną pętlę jak jest?