获取没有超线程的实际处理器内核总数

Get total count of actual processor cores without Hyperthreading

我正在寻找一种方法来获取实际处理器核心的总数,因为我发现的所有内容(例如 this)returns 核心数量加上英特尔的超线程技术,即我我的 i7 6700K 显示有 8 个内核,而处理器只有 4 actual cores。据我所知,这仅适用于具有超线程技术的英特尔处理器。

我自己弄明白了(使用 Linq)。 las,代码在速度方面并不是最快的。参考 System.Management 就可以了:

var processorCoreCount = new ManagementObjectSearcher("Select * from Win32_Processor").Get().Cast<ManagementBaseObject>().Sum(item => int.Parse(item["NumberOfCores"].ToString()));