C # - Czy Parallel.Invoke i Parallel.ForEach zasadniczo to samo?

Przez „to samo” mam na myśli to, że te dwie operacje wykonują zasadniczo tę samą pracę, a to sprowadza się do tego, które z nich jest wygodniejsze do wywołania w oparciu o to, z czym trzeba pracować? (tj. lista delegatów lub lista rzeczy do powtórzenia)? Szukałem MSDN, StackOverflow i różnych losowych artykułów, ale muszę jeszcze znaleźć jasną odpowiedź na to pytanie.

EDYTOWAĆ: Powinienem być jaśniejszy; Pytam, czy te dwie metody robią to samo, bo jeśli tego nie zrobią, chciałbym zrozumieć, co byłoby bardziej skuteczne.

Przykład: Mam listę 500 kluczowych wartości. Obecnie używam pętli foreach, która iteruje listę (szeregowo) i wykonuje pracę dla każdego elementu. Jeśli chcę skorzystać z wielu rdzeni, czy zamiast tego powinienem użyć Parallel.ForEach? powiedzmy, ze względu na argumenty, że miałem tablicę 500 delegatów dla tych 500 zadań - czy efektem netto będzie jakikolwiek inny wywołanie Parallel.Invoke i nadanie mu listy 500 delegatów?

Z góry bardzo dziękuję!

questionAnswers(3)

yourAnswerToTheQuestion