【问题标题】:openhardware monitor exception打开硬件监视器异常
【发布时间】:2017-06-23 09:05:09
【问题描述】:

我的程序在运行 open() 时给了我两个异常。

我已经做了很多搜索,但我无法解决它。 有人可以帮助我,我对编程充满热情。所以,我不太清楚如何解决这些错误。

public void tempcpu()
{
    myComputer = new Computer()
    {
        MainboardEnabled = true,
        CPUEnabled = true,
        RAMEnabled = true,
        GPUEnabled = true,
        FanControllerEnabled = true,
        HDDEnabled = true
    };
    myComputer.Open();

    float averange = 0;
    foreach (var hardware in myComputer.Hardware)
    {
        if (hardware.HardwareType == HardwareType.CPU)
        {
            hardware.Update();
            foreach (var sensor in (hardware.Sensors))enter code here
                if (sensor.SensorType == SensorType.Temperature)
                {if(sensor.Value!= null)
          averange = averange + sensor.Value.Value;
                }
             }
        cpu = averange / 5;
        myComputer.Close();
    }
} 

例外:

【问题讨论】:

  • 在下面的图片中
  • 该异常发生在哪一行代码中?
  • mycomputer.open();
  • 有趣。 myComputer 是什么类型的?什么是计算机类型?显示所有命名空间的完整路径。
  • 电脑我的电脑;

标签: c# exception ddl openhardwaremonitor


【解决方案1】:

从 foreach 循环中删除 myComputer.Close(); 并在之后放置 if。您在循环的第一次迭代后关闭myComputer,然后尝试再次访问它,因此您的ArgumentOutOfRangeException。

也不确定它是否是一个错字或者它是否是你代码的一部分,但你不应该在你的方法中间有enter code here :-)

【讨论】:

  • 我已经删除了 close () 并且仍然给出了同样的错误。它在 mycomputer.open (); 中作为异常返回;
  • 您是完全删除它还是从foreach 循环中删除它?
  • 仅来自 foreach 循环
  • 毕竟如何抛出异常非 CPU ENABLE = true;
猜你喜欢
  • 1970-01-01
  • 2014-04-23
  • 1970-01-01
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多