我希望您能实时获取CPU性能数据,包括温度。我使用以下代码来获取CPU温度:
但是这段代码显示的温度并不是正确的温度。它通常显示49.5-50.5摄氏度。但我使用了“OpenHardwareMonitor”报告CPU温度超过71摄氏度,并且随着时间分数的变化而变化。在代码中是否有什么遗漏?
我在每500毫秒间隔的计时器_click事件中使用了上述代码来刷新温度读数,但始终显示相同的温度值,从执行开始就如此。这意味着如果您运行此应用程序并显示49度,则经过1小时会话后,它将不断显示49度。问题出在哪里?
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\WMI",
"SELECT * FROM MSAcpi_ThermalZoneTemperature");
foreach (ManagementObject queryObj in searcher.Get())
{
double temp = Convert.ToDouble(queryObj["CurrentTemperature"].ToString());
double temp_critical = Convert.ToDouble(queryObj["CriticalTripPoint"].ToString());
double temp_cel = (temp/10 - 273.15);
double temp_critical_cel = temp_critical / 10 - 273.15;
lblCurrentTemp.Text = temp_cel.ToString();
lblCriticalTemp.Text = temp_critical_cel.ToString();
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
但是这段代码显示的温度并不是正确的温度。它通常显示49.5-50.5摄氏度。但我使用了“OpenHardwareMonitor”报告CPU温度超过71摄氏度,并且随着时间分数的变化而变化。在代码中是否有什么遗漏?
我在每500毫秒间隔的计时器_click事件中使用了上述代码来刷新温度读数,但始终显示相同的温度值,从执行开始就如此。这意味着如果您运行此应用程序并显示49度,则经过1小时会话后,它将不断显示49度。问题出在哪里?
queryObj["ThermalStamp"]
的值会改变吗? - Frédéric Hamidi