Cuanto más uso Parallel.ForEach y PLINQ en mi código, más respuestas de revisión de caras y códigos estoy obteniendo. Entonces, me pregunto si hay alguna razón para que NO use PLINQ, en extremo, en cada declaración LINQ. ¿Puede el tiempo de ejecución no ser lo suficientemente inteligente como para comenzar a generar tantos hilos (o consumir tantos hilos del grupo de subprocesos) que el rendimiento de la aplicación realmente se degradaría en lugar de mejorar? La misma pregunta se aplica a la biblioteca de Parallel..NET 4 Parallel.ForEach y PLINQ: ¿pueden abrumar el grupo de subprocesos y matar el rendimiento de la aplicación?
Entiendo las implicaciones relacionadas con la seguridad de hilos y la sobrecarga de usar multihilo. También me doy cuenta de que no todo es bueno para paralelizar. Todo lo que me pregunto es si debería dejar de defender mis enfoques y renunciar a estas dos cosas buenas porque mis compañeros piensan que será mejor que yo mismo controle el hilo en lugar de confiar en las instalaciones de .NET.
ACTUALIZACIÓN: suponga que el hardware es suficientemente bueno para cumplir los requisitos para el uso de multihilo.
creo que a menos que lo configure manualmente plinq solo usa algunos hilos basados en la cantidad de núcleos que tiene –
@LukeMcGregor: ¿sabe cuáles son los valores predeterminados y cómo cambiarlos? – Schultz9999