2009-11-22 16 views
11

Tengo curiosidad sobre lo que realmente devuelve la propiedad .NET Environment.ProcessorCount. ¿Devuelve la cantidad de núcleos, el número de procesadores o ambos? Si mi computadora tuviera 2 procesadores, cada uno con 4 núcleos, ¿sería Environment.ProcessorCount el resultado 2, 4 u 8?Pregunta sobre Environment.ProcessorCount

+2

ver http://stackoverflow.com/questions/188503/detecting-the-number-of-processors – adrianbanks

Respuesta

15

Devolverá la variable de entorno NUMBER_OF_PROCESSORS. (Ver MSDN)

Esta será igual al número de núcleos lógicos - es decir, si tiene un HT activar procesador de núcleo único, devolverá 2.

En su caso, debe devolver 8.

Será el mismo número que la cantidad de gráficos de utilización de CPU que verá en el administrador de tareas.

+0

Eso es totalmente falso. Si cambia la variable de entorno y luego inicia una aplicación desde el mismo entorno en el que cambia la variable, aún obtendrá la cantidad real de procesador lógico. Como nota al margen: eso no siempre es cierto en ciertos casos que realmente estoy buscando - relacionado con el hyper threading (Environment.ProcesserCount no tiene en cuenta Hyper Threading en un servidor que tenemos). –

+0

Fui rápido. Intento deshacer pero no puedo. No he visto la información en MSDN y, de hecho, no estaba allí cuando lo verifiqué. Pero me di cuenta una hora después de que estaba allí para la versión 4.0 del framework, pero su enlace probablemente fue automáticamente redirigido a 4.5. No puedo deshacer! –

4

Devuelve el número de procesadores lógicos, por lo que 8 en su ejemplo.

0

Si mi equipo tenía 2 procesadores, cada uno con 4 núcleos, lo haría Environment.ProcessorCount retorno 2, 4, u 8?

Devuelve 8, en mi caso de todos modos. (Core i7 860 cpu).