我知道我可以使用 System.Environment.ProcessorCount
返回机器中“处理器”的数量。我想做的是找出是否有办法确定处理器中的核心数量,不包括超线程作为“核心”。例如,在双核超线程处理器上,System.Environment.ProcessorCount
将返回 4,因为有 2 个物理内核,均具有超线程。我想做的是返回 2,因为只有 2 个物理内核。
顺便说一句,我正在使用 C#。
最佳答案
您可以使用WMI 获取系统中的内核数。这个关于堆栈溢出的类似问题包括一个代码示例:--> How to find the Number of CPU Cores via .NET/C#?
要牢记的重要一点是,在某些系统中,此值可能不可用;例如,在 Windows Server 2003 上,您需要从 Microsoft 下载修补程序才能使“NumberOfCores”正常工作。
关于c# - 检索物理核心处理器的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3464278/