You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何LibreHardwareMonitor中Hardware.Sensors无法工作?C#问题

问题修复方案

错误原因

Hardware.Sensors是实例属性,必须通过Hardware类的具体实例访问,不能直接用类名调用,这就是报错的核心原因。

修正后的代码

private void tabTemps_Enter(object sender, EventArgs e)
{
   Computer c = new Computer
   {
      IsCpuEnabled = true,
      IsGpuEnabled = true,
      IsMemoryEnabled = true,
      IsMotherboardEnabled = true,
      IsControllerEnabled = true,
      IsNetworkEnabled = true,
      IsStorageEnabled = true
   };

   c.Open();
         
   // 遍历Computer对象中的所有硬件设备
   foreach (var hardware in c.Hardware)
   {
      // 遍历当前硬件下的所有传感器
      foreach (ISensor sensor in hardware.Sensors)
      {
          // 仅筛选温度传感器,过滤无关数据
          if (sensor.SensorType == SensorType.Temperature)
          {
              // 处理空值并格式化温度显示
              string tempValue = sensor.Value.HasValue ? $"{sensor.Value.Value.ToString("F1")}°C" : "无数据";
              rtbTemps.AppendText($"传感器: {sensor.Name}, 温度: {tempValue}\n");
          }
      }
   }

   // 释放资源
   c.Close();
}

关键说明

  • 必须通过Computer对象的Hardware集合获取具体硬件实例,再访问该实例的Sensors属性。
  • 添加SensorType.Temperature筛选,只输出温度数据,避免显示电压、风扇转速等非目标信息。
  • 对sensor.Value做空值处理,防止空引用异常;格式化温度保留1位小数,提升可读性。
  • 操作完成后调用c.Close(),确保释放硬件监控相关资源。

内容的提问来源于stack exchange,提问作者nozzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 18:01:25