如何将NVIDIA核心温度设为整数值?

时间:2014-04-06 12:30:43

标签: c# arduino gpu nvidia temperature

我正在参加Arduino微控制器课程,我正在研究我的最终项目:一个根据外壳温度工作的自动计算机冷却系统。

我无法使用以下来源获取我的NVIDIA GPU核心温度:this MSDN linkthis NVIDIA link。如何获得GPU的温度值?

我对C#的了解是基本的,我无法从该手册的尾部或MSDN中的代码示例中找到答案。

1 个答案:

答案 0 :(得分:4)

在经过长时间的搜索后,我会继续回答我自己的问题。我找到了一种获取数据的方法。

使用他们的开源链接中的OpenHardwareMonitor.dll,我能够得到我需要的东西。

这是我在windows c#应用程序中使用的代码(它可能不是最好的方法,但它可以完成工作。

希望有人发现这有用:

using OpenHardwareMonitor.Hardware;

。 。

public partial class mainWindow : Form
{

    Computer myComputer;

    public mainWindow()
    {
        InitializeComponent();

        myComputer = new Computer();
        myComputer.Open();
        myComputer.GPUEnabled = true;
        myComputer.CPUEnabled = true;
        foreach (var hardwareItem in myComputer.Hardware)
        {
            if (hardwareItem.HardwareType == HardwareType.GpuNvidia)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        GPUtemp.Text = String.Format(sensor.Value + "°C");
                    }
                }
            }
            if (hardwareItem.HardwareType == HardwareType.CPU)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        CPUtemp.Text = String.Format(sensor.Value + "°C");
                    }
                }
            }

        }
    }

    private void valueRefresh_Tick(object sender, EventArgs e)
    {
        myComputer = new Computer();
        myComputer.Open();
        myComputer.GPUEnabled = true;
        myComputer.CPUEnabled = true;
        foreach (var hardwareItem in myComputer.Hardware)
        {
            if (hardwareItem.HardwareType == HardwareType.GpuNvidia)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        GPUtemp.Text = String.Format(sensor.Value.ToString()); // write the value to a lable on the form
                    }
                }
            }
            if (hardwareItem.HardwareType == HardwareType.CPU)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        CPUtemp.Text = String.Format(sensor.Value.ToString());    // write the value to a lable on the form

                    }
                }
            }

        }
    }
}