我们可以获得与处理器有关的几条不同的信息
物理处理器数量
核心数
逻辑处理器数量
这些都可以有所不同。对于具有2个启用双核超线程的处理器的计算机,有2个物理处理器,4个内核和8个逻辑处理器。
逻辑处理器的数量可通过Environment类获得,但其他信息仅可通过WMI获得(并且可能必须安装一些修补程序或Service Pack才能在某些系统上获得它)-
在项目中添加对System.Management.dll的引用。在.NET Core中,该引用作为NuGet包可用(仅适用于Windows)。
class Program{ public static void Main(){ foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get()){ Console.WriteLine("Number Of Physical Processors: {0} ", item["NumberOfProcessors"]); } Console.ReadLine(); } }
输出结果
Number Of Physical Processors: 1
class Program{ public static void Main(){ int coreCount = 0; foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_Processor").Get()){ coreCount += int.Parse(item["NumberOfCores"].ToString()); } Console.WriteLine("Number Of Cores: {0}", coreCount); Console.ReadLine(); } }
输出结果
Number Of Cores: 2
class Program{ public static void Main(){ Console.WriteLine("Number Of Logical Processors: {0}", Environment.ProcessorCount); Console.ReadLine(); } }
输出结果
Number Of Logical Processors: 4