如何在 C# 中查找 CPU 核数?
我们可以获取关于处理器的多种不同信息
- 物理处理器数量
- 核心数量
- 逻辑处理器数量
所有这些都可能不同;就一台拥有 2 个双核超线程启用的处理器的机器而言,有 2 个物理处理器、4 个内核和 8 个逻辑处理器。
逻辑处理器的数量可以通过环境类获取,但其他信息只能通过 WMI 获取(并且在某些系统上,您可能必须安装一些修补程序或服务包才能获得信息) −
在您的项目中添加对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
广告