gpt4 book ai didi

c# - 如何判断运行我的程序的机器是否使用超线程? (C#)

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:42 24 4
gpt4 key购买 nike

我有一些代码需要知道我的特定机器上有多少实际内核可用,以及是否启用了超线程。

有没有办法在 C# 中执行此操作?

更新:这些机器是 XP 和 Vista 的混合体

更新:访问“Win32_Processor.NumberOfCores”或“Win32_Processor.NumberOfLogicalProcessors”会在其中一台机器(但不是所有机器)上引发异常(带有消息“未找到”的 ManagmentException)

最佳答案

在 Vista 和更高版本上,您可以通过 PInvoke 使用 GetLogicalProcessorInformation 来获取逻辑处理器单元的数量。

在 Windows XP 上,无法通过 C# 可靠地区分超线程与其他多处理器/核心配置。有人发布的 WMI 解决方案将多核处理器归类为超线程。

在 Vista 之前,唯一可靠的方法是检查处理器的 CPUID。要使用它,您可以创建一个可以从您的托管代码调用的 native DLL。以下英特尔代码 sample将是一个很好的起点。

关于c# - 如何判断运行我的程序的机器是否使用超线程? (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com