查找计算机,.NET Core 2.1,C#,Ubuntu

时间:2018-11-12 20:12:20

标签: c# linux .net-core

如何在专门运行Ubuntu和.NET Core的计算机上找到可用的总物理内存?大多数解决方案仅适用于完整的.NET和以下.NET核心代码段-

ManagementClass mc = new ManagementClass ("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject item in moc)
    m1 = Convert.ToUInt64(item.Properties["TotalPhysicalMemory"].Value);

在Windows上正常工作,但在非Windows系统上返回0。

1 个答案:

答案 0 :(得分:1)

当前您无法获得所有平台上的硬件信息,在本期杂志中也提到了这一点:https://github.com/dotnet/corefx/issues/22660

我认为从.NET Core 2.1开始,您可以使用Process类来获取进程内存,如本期所述:https://github.com/dotnet/corefx/issues/26669


作为替代方案,在Linux上,您始终可以从/ proc中的文件访问硬件和操作系统信息,因为内存为/proc/meminfo 在那里,您将获得MemTotal,MemFree和许多其他信息。

但是这种方法需要一些文件解析。