如何获取整数值的 NVIDIA 核心温度?

Men*_*kes 0 c# gpu arduino nvidia temperature

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

我无法使用以下来源获取 NVIDIA GPU 核心温度:此 MSDN 链接此 NVIDIA 链接。如何获取 GPU 的温度值?

我的 C# 知识很基础,我对 MSDN 中的手册或代码示例摸不着头脑。

Men*_*kes 5

经过很长时间的搜索如何做到这一点,我将继续回答我自己的问题,我找到了一种获取数据的方法。

\n\n

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

\n\n

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

\n\n

希望有人觉得这有帮助:

\n\n
using OpenHardwareMonitor.Hardware;\n
Run Code Online (Sandbox Code Playgroud)\n\n

.\n.\n.

\n\n
public partial class mainWindow : Form\n{\n\n    Computer myComputer;\n\n    public mainWindow()\n    {\n        InitializeComponent();\n\n        myComputer = new Computer();\n        myComputer.Open();\n        myComputer.GPUEnabled = true;\n        myComputer.CPUEnabled = true;\n        foreach (var hardwareItem in myComputer.Hardware)\n        {\n            if (hardwareItem.HardwareType == HardwareType.GpuNvidia)\n            {\n                foreach (var sensor in hardwareItem.Sensors)\n                {\n                    if (sensor.SensorType == SensorType.Temperature)\n                    {\n                        GPUtemp.Text = String.Format(sensor.Value + "\xc2\xb0C");\n                    }\n                }\n            }\n            if (hardwareItem.HardwareType == HardwareType.CPU)\n            {\n                foreach (var sensor in hardwareItem.Sensors)\n                {\n                    if (sensor.SensorType == SensorType.Temperature)\n                    {\n                        CPUtemp.Text = String.Format(sensor.Value + "\xc2\xb0C");\n                    }\n                }\n            }\n\n        }\n    }\n\n    private void valueRefresh_Tick(object sender, EventArgs e)\n    {\n        myComputer = new Computer();\n        myComputer.Open();\n        myComputer.GPUEnabled = true;\n        myComputer.CPUEnabled = true;\n        foreach (var hardwareItem in myComputer.Hardware)\n        {\n            if (hardwareItem.HardwareType == HardwareType.GpuNvidia)\n            {\n                foreach (var sensor in hardwareItem.Sensors)\n                {\n                    if (sensor.SensorType == SensorType.Temperature)\n                    {\n                        GPUtemp.Text = String.Format(sensor.Value.ToString()); // write the value to a lable on the form\n                    }\n                }\n            }\n            if (hardwareItem.HardwareType == HardwareType.CPU)\n            {\n                foreach (var sensor in hardwareItem.Sensors)\n                {\n                    if (sensor.SensorType == SensorType.Temperature)\n                    {\n                        CPUtemp.Text = String.Format(sensor.Value.ToString());    // write the value to a lable on the form\n\n                    }\n                }\n            }\n\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n