获取可用的空闲 RAM 内存 C#

Get Available Free RAM Memory C#

需要每 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();
        }

试试这个...

包括对 Microsoft.VisualBasic dll 的引用:

using Microsoft.VisualBasic.Devices;

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

lbl_Avilable_Memory.Text = new ComputerInfo().AvailablePhysicalMemory.ToString() + " bytes free";

...或...

lbl_Avilable_Memory.Text = (ComputerInfo().AvailablePhysicalMemory / 1048576) + "mb free";

备注:

  1. 参考 ComputerInfo class 的 AvailablePhysicalMemory 属性 优先于您之前使用的 TotalPhysicalMemory 属性。
  2. 不需要 getAvailableRAM() 方法。将 ram_timer_tick 中的调用替换为 lbl_Avilable_Memory.Text = (ComputerInfo().AvailablePhysicalMemory / 1048576) + "mb free";
  3. 同样值得考虑的是,以单词 get 开头的方法应该 return 一个值。如果要保留该方法,那么我建议将其重命名为 SetLbl_Avilable_Memory()
  4. 您的标签名称中 available 一词拼写错误。