获取可用的RAM内存C#

时间:2015-04-19 00:13:45

标签: 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();
        }

1 个答案:

答案 0 :(得分: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这个词。