C#获取计算机CPU的温度

  上一篇文章说到了获取计算机物理和操作系统的相关信息的方法(获取windows 操作系统下的硬件或操作系统信息等),这篇文章短一点,将下如何获取CPU的温度。

  获取CPU的温度,需要指定ManagementObjectSearcher 的查询范围,参数发生变化。另外需要程序需要使用管理员权限

 

复制代码
public class Temperature
{
    public double CurrentValue { get; set; }
    public string InstanceName { get; set; }
    public static List<Temperature> Temperatures
    {
        get
        {
            List<Temperature> result = new List<Temperature>();
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature");
            foreach (ManagementObject obj in searcher.Get())
            {
                double temperature = Convert.ToDouble(obj["CurrentTemperature"].ToString());
                temperature = (temperature - 2732) / 10.0;
                result.Add(new Temperature { CurrentValue = temperature, InstanceName = obj["InstanceName"].ToString() });
            }
            return result;
        }
    }

    public override string ToString()
    {
        return $"{InstanceName}: {CurrentValue}℃";
    }
}
复制代码

 

posted @   一只独行的猿  阅读(3063)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示