Supongamos que tiene una tarea que realizar. Digamos que eres un profesor de matemáticas y tienes veinte papeles para calificar. Le toma dos minutos calificar un papel, por lo que le tomará unos cuarenta minutos.
Supongamos ahora que decide contratar algunos asistentes para ayudarlo a calificar los trabajos. Te lleva una hora localizar a cuatro asistentes. Cada uno toma cuatro documentos y todo está listo en ocho minutos. Has cambiado 40 minutos de trabajo por 68 minutos totales de trabajo, incluida la hora extra para encontrar a los asistentes, por lo que no es un ahorro. La sobrecarga de encontrar a los asistentes es mayor que el costo de hacer el trabajo usted mismo.
Supongamos que tiene veinte mil papeles para nivelar, por lo que le tomará unos 40000 minutos. Ahora, si pasas una hora buscando ayudantes, es una victoria. Cada uno de ustedes toma 4000 documentos y lo hacen en un total de 8060 minutos en lugar de 40000 minutos, un ahorro de casi un factor de 5. La sobrecarga de encontrar asistentes es básicamente irrelevante.
Paralelización es no gratis. El costo de dividir el trabajo entre los diferentes hilos debe ser pequeño en comparación con la cantidad de trabajo realizado por cada hilo.
Más información:
https://en.wikipedia.org/wiki/Amdahl%27s_law
https://en.wikipedia.org/wiki/Gustafson%27s_law
Básicamente porque hay un costo de instalación involucrado, y no está haciendo suficiente trabajo dentro del ciclo para justificar la sobrecarga. Ver p. [esta respuesta] (http: // stackoverflow.com/questions/2828429/what-are-the-guidelines-for-parallel-foreach-vs-foreach/2828486 # 2828486). (Espero que esta sea una pregunta duplicada.) – Rup
La 'Console.WriteLine()' lo hace totalmente irrelevante. –
Intenta eliminar 'Console.WriteLine()' y reemplázalo con 'c.FirstName = c.FirstName.ToLowerInvariant()'. No verá una diferencia si su colección tiene alrededor de 5000 artículos; pero si su colección tiene 6000, 7000, ... 10,000 artículos, en un procesador de 4 núcleos, verá una gran diferencia ('Parallel.Foreach' será más rápido) –