2009-11-22 6 views
11

Je suis curieux de savoir ce que la propriété .NET Environment.ProcessorCount retourne réellement. Renvoie-t-il le nombre de cœurs, le nombre de processeurs ou les deux? Si mon ordinateur avait 2 processeurs, chacun avec 4 cœurs, Environment.ProcessorCount retournerait 2, 4 ou 8?Question à propos de Environment.ProcessorCount

+2

voir http://stackoverflow.com/questions/188503/detection-the-number-of-processors – adrianbanks

Répondre

15

Il renverra la variable d'environnement NUMBER_OF_PROCESSORS. (Voir MSDN)

Ce sera égal au nombre de cœurs logiques - à savoir si vous avez un HT activé processeur simple core, il retournera 2.

Dans votre cas, il doit retourner 8.

Ce sera le même nombre que le nombre de graphiques d'utilisation du processeur que vous verrez dans le gestionnaire de tâches.

+0

C'est totalement faux. Si vous modifiez la variable d'environnement, puis démarrez une application à partir du même environnement que celui dans lequel vous modifiez la variable, vous obtiendrez toujours le nombre réel de processeurs logiques. En remarque: ce n'est pas toujours vrai dans certains cas que je recherche réellement - liés à l'hyper threading (Environment.ProcesserCount ne prend pas en compte l'Hyper Threading sur un serveur que nous avons). –

+0

J'étais rapide. J'essaie de défaire mais je ne peux pas. Je n'ai pas vu l'information dans MSDN et en fait il n'était pas là quand j'ai vérifié. Mais j'ai réalisé une heure après qu'il était là pour la version 4.0 du framework mais votre lien a probablement été automatiquement redirigé vers la version 4.5. Je ne peux pas défaire! –

4

Il renvoie le nombre de processeurs logiques, donc 8 dans votre exemple.

0

Si mon ordinateur avait 2 processeurs, chacun avec 4 cœurs, serait Environment.ProcessorCount retour 2, 4 ou 8?

Il renvoie 8, dans mon cas de toute façon. (Core i7 860 cpu).