获取可用的RAM内存C#

Jan*_*990 13 c# memory

需要每1秒执行一次免费的可用内存,所以我使用方法和计时器滴答,但它没有改变,它在标签文本中总是显示8081MB.那么如何每隔1秒检查一次呢?因为使用计算机内存也会改变.这是我的代码:

    // Get Available Memory 
        public void getAvailableRAM()
        {
            ComputerInfo CI = new ComputerInfo();
            ulong mem = ulong.Parse(CI.TotalPhysicalMemory.ToString());
            lbl_Avilable_Memory.Text = (mem / (1024 * 1024) + " MB").ToString();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            // Get Available Memory Timer 

            ram_timer.Enabled = true;

            // end memory 

        }
        private void ram_timer_Tick(object sender, EventArgs e)
        {
            getAvailableRAM();
        }
Run Code Online (Sandbox Code Playgroud)

Kel*_*ero 18

试试这个......

包括对Microsoft.VisualBasicdll 的引用:

using Microsoft.VisualBasic.Devices;
Run Code Online (Sandbox Code Playgroud)

...然后按如下方式更新您的标签:

lbl_Avilable_Memory.Text = new ComputerInfo().AvailablePhysicalMemory + " bytes free";
Run Code Online (Sandbox Code Playgroud)

...要么...

lbl_Avilable_Memory.Text = (ComputerInfo().AvailablePhysicalMemory / 1048576) + "mb free";
Run Code Online (Sandbox Code Playgroud)

笔记:

  1. 引用AvailablePhysicalMemory的财产ComputerInfo优先于类TotalPhysicalMemory你以前使用的属性.
  2. getAvailableRAM()方法不是必需的.在调用替换ram_timer_ticklbl_Avilable_Memory.Text = (ComputerInfo().AvailablePhysicalMemory / 1048576) + "mb free";
  3. 同样值得考虑的是,以该单词开头的方法应该get返回一个值.如果方法是留下,那么我建议SetLbl_Avilable_Memory()改为重命名.
  4. available在标签名称中拼写错误.