获取可用的RAM内存C#

问题描述 投票:13回答:1

需要每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();
        }
c# memory
1个回答
17
投票

试试这个......

包括对Microsoft.VisualBasic dll的引用:

using Microsoft.VisualBasic.Devices;

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

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

...要么...

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

笔记:

  1. 引用AvailablePhysicalMemory类的ComputerInfo属性优先于您之前使用的TotalPhysicalMemory属性。
  2. 不需要getAvailableRAM()方法。用ram_timer_tick替换lbl_Avilable_Memory.Text = (ComputerInfo().AvailablePhysicalMemory / 1048576) + "mb free";中的调用
  3. 同样值得考虑的是,以get这个词开头的方法应该会返回一个值。如果方法要保留,那么我建议将其重命名为SetLbl_Avilable_Memory()
  4. 您在标签名称中拼错了available这个词。
© www.soinside.com 2019 - 2024. All rights reserved.