¿Qué puedo hacer para que mi aplicación de C # aprovechar múltiples núcleos de procesador?
-
09-10-2019 - |
Pregunta
He estado haciendo algunas pruebas acerca de la forma en que una aplicación .NET C # utiliza los recursos, como la CPU o la memoria. Escribí algunos bucles que los valores para calcular una gran cantidad de números y estoy satisfecho con el peso del algoritmo.
Tengo un procesador de cuatro núcleos a 2,4 GHz, pero me he dado cuenta de que en el Administrador de tareas, mi solicitud es sólo con el 25% de mi CPU. Por qué no está utilizando el 100%? ¿Esto significa que un .NET C # aplicación compilada en VS 2008 sólo es compatible con un solo núcleo de la CPU? ¿O hay una manera que puedo forzar que se use todas las CPU?
Solución 4
¿Qué pasa si el uso del fondo de trabajo, si tengo la CPU Quad Core 4 de CPU puede alguien escribir un ejemplo de cómo podría reaccionar @ que la CPU?
Otros consejos
Todo depende de cómo se puede modificar el código para utilizar más de un núcleo.
A menos que usted está haciendo en paralelo o en operaciones con múltiples hilos, entonces el programa no utilizar más de un núcleo.
.NET 4 tiene una biblioteca que puede ayudarle a: Parallel LINQ. Para obtener más información, consulte esta página: http://msdn.microsoft.com/en- es / library / dd997425.aspx
Se ejecutará en 1 núcleo a menos que inicie de forma específica algunos de roscado.
La manera más fácil es empujar un método en el ThreadPool.
System.Threading.ThreadPool.QueueUserWorkItem(DoSomething);
void DoSomething() { ... }
Uso .NET 4.0
TaskLibrary
que está diseñado para beneficiarse de multi-núcleo procesadores.