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);

}

 
posted @ 2025-10-20 17:36  Ace001  阅读(24)  评论(0)    收藏  举报