- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想实时获取 CPU 性能数据,包括温度。我使用以下代码获取 CPU 温度:
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 摄氏度并随时间分数变化的分数。我在代码中遗漏了什么吗?
我在 timer_click 事件中使用上述代码每隔 500 毫秒刷新一次温度读数,但从执行开始它始终显示相同的温度。这意味着如果您运行此应用程序,如果它显示 49 度,那么在 1 小时的 session 后,它将持续显示 49 度。问题出在哪里?
最佳答案
在https://web.archive.org/web/20150911113852/http://www.scriptinternals.com/new/us/support/Internal/WMI_MSAcpi_ThermalZoneTemperature.htm我发现 CurrentTemperature 返回主板上某个热区的温度。这意味着它返回的不是 CPU 温度。厨房的温度是 30 摄氏度,而炉子的温度是 200 摄氏度左右……这种方式无法显示 CPU 的准确温度。要获得 CPU(和每个内核)的准确温度,您需要编写内核驱动程序,这要复杂得多。
总而言之,您的代码做了它应该做的事情,为了测量温度,您需要使用其他方式。
关于c# - MSAcpi_ThermalZoneTemperature 类不显示实际温度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101295/
我想实时获取 CPU 性能数据,包括温度。我使用以下代码获取 CPU 温度: try { ManagementObjectSearcher searcher =
我是一名优秀的程序员,十分优秀!