如何获得可用系统内存的大小?

是否有可能在C#.NET中获得系统可用内存的大小? 如果是的话如何?

使用Microsoft.VisualBasic.Devices.ComputerInfo.TotalPhysicalMemory

用鼠标右键单击您的项目,添加引用,selectMicrosoft.VisualBasic

这个答案是基于Hans Passant的。 实际上需要的属性是AvailablePhysicalMemory。 它(和TotalPhysicalMemory等)是实例variables,所以它应该是

 new ComputerInfo().AvailablePhysicalMemory 

它在C#中工作,但我想知道为什么这个页面说C#,“这种语言不支持或没有代码示例是可用的。

从EggHeadCafe谷歌search'C#系统内存'

您将需要添加对System.Management的引用

 using System; using System.Management; namespace MemInfo { class Program { static void Main(string[] args) { ObjectQuery winQuery = new ObjectQuery("SELECT * FROM Win32_LogicalMemoryConfiguration"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(winQuery); foreach (ManagementObject item in searcher.Get()) { Console.WriteLine("Total Space = " + item["TotalPageFileSpace"]); Console.WriteLine("Total Physical Memory = " + item["TotalPhysicalMemory"]); Console.WriteLine("Total Virtual Memory = " + item["TotalVirtualMemory"]); Console.WriteLine("Available Virtual Memory = " + item["AvailableVirtualMemory"]); } Console.Read(); } } } 

输出:

总空间= 4033036

总物理内存= 2095172

总虚拟内存= 1933904

可用虚拟内存= 116280

使用通过System.Diagnostics访问的性能计数器将是一个选项。

请参阅http://www.dotnetspider.com/resources/4612-Find-Memory-usage-CPU-usage.aspx

希望这可以帮助!

 var performance = new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes"); var memory = performance.NextValue();