我正在开发一个.NET 5控制台应用程序,希望能够读取一些基本的系统信息,如CPU温度、内存使用情况、CPU使用率等。我的开发机器运行的是Windows操作系统,但应用程序将部署到Linux机器上,因此我希望避免为两个操作系统编写不同的代码。
如何以跨平台的方式实现这一目标?有许多适用于Windows的API和调用可以实现这一功能,但我需要在Linux上也能工作。
如何以跨平台的方式实现这一目标?有许多适用于Windows的API和调用可以实现这一功能,但我需要在Linux上也能工作。
有一个Github问题正在开放,旨在将其作为.net运行时的一部分进行标准化。也许我们会在.net 6或7中看到这一点,谁知道呢... https://github.com/dotnet/runtime/issues/22948
这是其中较好的库之一:https://github.com/openhardwaremonitor/openhardwaremonitor。他们似乎尝试了一些Linux支持。
对于像 CPU 使用率 这样的东西,你可能会在如何在C#中获取CPU使用情况?(Windows)中获得成功。
对于 Linux 上的 CPU,解析命令行结果:https://phoenixnap.com/kb/check-cpu-usage-load-linux。简而言之:
sudo apt install sysstat
mpstat 1
free -m
并使用Process
类解析结果。
其他可能对Linux有帮助的链接: