2010-08-12 3 views
3

Je sais que je peux utiliser System.Environment.ProcessorCount pour renvoyer le nombre de "processeurs" dans une machine. Ce que j'essaie de faire est de savoir s'il existe un moyen de déterminer le nombre de cœurs dans le processeur, sans inclure l'hyperthreading comme un «noyau». Par exemple, sur un processeur d'hyperthreading dual core, System.Environment.ProcessorCount renverra 4 parce qu'il y a 2 cœurs physiques, tous deux avec hyperthreading. Ce que je veux faire, c'est renvoyer 2 car il n'y a que 2 cœurs physiques. En passant, j'utilise C#.Récupération du nombre de processeurs physiques de base

Répondre

3

Vous pouvez utiliser WMI pour obtenir le nombre de cœurs dans le système. Cette question similaire sur le débordement de pile inclut un exemple de code: ->How to find the Number of CPU Cores via .NET/C#?

Un point important à garder à l'esprit est que dans certains systèmes cette valeur peut ne pas être disponible; Par exemple, sur Windows Server 2003, vous devez télécharger un correctif de Microsoft pour que «NumberOfCores» fonctionne.

Questions connexes