Получить доступную свободную память RAM С#

Нужно выполнять свободную доступную память каждые 1сек, поэтому я использую метод и таймер, но он не меняется, он всегда показывает 8081 МБ в тексте ярлыка. Итак, как сделать это, проверяйте каждые 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

Попробуйте с этим...

Включить ссылку на 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";

Примечания:

  • Ссылка на свойство AvailablePhysicalMemory класса ComputerInfo в предпочтении над свойством TotalPhysicalMemory, которое вы использовали ранее.
  • Метод getAvailableRAM() не требуется. Замените вызов в ram_timer_tick на lbl_Avilable_Memory.Text = (ComputerInfo().AvailablePhysicalMemory / 1048576) + "mb free";
  • Также стоит подумать, что методы, начинающиеся со слова get, как ожидается, возвращают значение. Если бы метод оставался, я бы рекомендовал вместо него переименовать его в SetLbl_Avilable_Memory().
  • Вы неправильно произнесли слово available в названии своей метки.