Tengo curiosidad sobre las características de rendimiento de Parallel.ForEach. Dado cualquier constructo válido dentro de un bucle Parallel.ForEach, ¿siempre es preferible usar Parallel.ForEach en un bucle foreach? Me pregunto específicamente sobre la sobrecarga de invocar la biblioteca de Tareas paralelas en conjuntos pequeños u otros casos extremos donde un ciclo foreach podría ser más rápido. Sé que la biblioteca es bastante inteligente sobre cuándo/cómo generar hilos ... hay casos en los que es mejor dejar el código en un bucle foreach, o la sobrecarga para llamar a Tareas paralelas generalmente es insignificante, así que si puedes, deberías usar Parallel.ForEach?¿Cuáles son las pautas para Parallel.ForEach vs. foreach?
Esta pregunta es similar y proporciona buena información de diferencia funcional, pero realmente no habla de rendimiento. Tenga en cuenta que estoy haciendo caso omiso de la compatibilidad con .NET < 4 como una razón para quedarse con un foreach:
C#: Any benefit of List<T>.ForEach(...) over plain foreach loop?
Es posible encontrar algunas respuestas aquí http://www.microsoft.com/downloads/details.aspx?familyid=C3EA8FB5-650D-434B-A216-7E54C53965D1&displaylang=en –