c# 获取cpu温度
wmi获取的是一个固定值不会变,经过chatgpt询问得到如下方案:
安装包:LibreHardwareMonitorLib
(string name, float? v) GetTemperature()
{
var name = "";
float? tem = 0;
var computer = new Computer()
{
IsCpuEnabled = true,
IsGpuEnabled = true,
IsMemoryEnabled = true,
IsMotherboardEnabled = true,
IsStorageEnabled = true
};
computer.Open();
foreach (IHardware hardware in computer.Hardware)
{
hardware.Update();
Console.WriteLine($"硬件: {hardware.Name}");
var list = hardware.Sensors.Where(x => x.Hardware.HardwareType == HardwareType.Cpu && x.SensorType == SensorType.Temperature).Select(x => new{x.Hardware.Name,SensorName=x.Name,x.Value,x }).ToList();
var package = list.FirstOrDefault(x=>x.SensorName== "CPU Package");
if (package!=null)
{
name = package.Name + " " + package.SensorName;
return (name, package.Value);
}
}
return (name, tem);
}
作者:xuejianxiyang
出处:http://xuejianxiyang.cnblogs.com
关于作者:Heaven helps those who help themselves.
本文版权归原作者和博客园共有,欢迎转载,但未经原作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号