我知道我可以System.Environment.ProcessorCount
用来返回机器中“处理器”的数量。我想做的是找出是否有办法确定处理器中的核心数量,不包括超线程作为“核心”。例如,在双核超线程处理器上,System.Environment.ProcessorCount
将返回 4,因为有 2 个物理内核,都具有超线程。我想要做的是返回 2,因为只有 2 个物理内核。
顺便说一句,我正在使用 C#。
我知道我可以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”工作。