Использование памяти дисплея в C#

Эта программа отображает общее и бесплатное использование физической, виртуальной и файловой памяти компьютера. Когда он запускается, следующий код отображает информацию о памяти системы в элементе управления ListView программы.

// Подготовьте ListView и отобразите значения.
private void Form1_Load(object sender, EventArgs e)
{
    // Создаем столбцы.
    lvwInfo.View = View.Details;
    lvwInfo.SetColumnHeaders(new object[]
        {
            "Property", HorizontalAlignment.Left,
            "Value", HorizontalAlignment.Right
        });

    // Добавьте значения.
    ManagementObjectSearcher os_searcher =
        new ManagementObjectSearcher(
            "SELECT * FROM Win32_OperatingSystem");
    foreach (ManagementObject mobj in os_searcher.Get())
    {
        GetInfo(mobj, "FreePhysicalMemory");
        GetInfo(mobj, "FreeSpaceInPagingFiles");
        GetInfo(mobj, "FreeVirtualMemory");
        GetInfo(mobj, "SizeStoredInPagingFiles");
        GetInfo(mobj, "TotalSwapSpaceSize");
        GetInfo(mobj, "TotalVirtualMemorySize");
        GetInfo(mobj, "TotalVisibleMemorySize");
    }

    // Размер столбцов.
    lvwInfo.SizeColumnsToFitDataAndHeaders();
}

Этот код устанавливает свойство View элемента управления ListView для отображения деталей. Затем он вызывает метод расширения SetColumnHeaders, чтобы заставить элемент управления отображать два заголовка столбца: Свойство и значение.

Затем программа создает ManagementObjectSearcher, чтобы получить информацию из структуры Win32_OperatingSystem. Он перебирает возвращаемых поисковиков (их будет только один) и вызывает метод GetInfo, чтобы получить информацию о нескольких свойствах поисковика.

Код заканчивается вызовом метода SizeColumnsToFitDataAndHeaders для размера столбцов элемента управления ListView для соответствия его данным и заголовкам. (См. Элементы управления ListView List по всем столбцы или щелкнутые столбцы на C# для получения информации о методах расширения ListView.)

В следующем коде показан метод GetInfo.

// Добавить информацию о свойстве в ListView.
private void GetInfo(ManagementObject mobj, string property_name)
{
    object property_obj = mobj[property_name];
    if (property_obj == null)
    {
        lvwInfo.AddRow(property_name, "???");
    }
    else
    {
        ulong property_value = (ulong)property_obj * 1024;
        lvwInfo.AddRow(property_name,
            property_value.ToFileSizeApi());
    }
}

Этот метод получает информацию о свойствах из ManagementObject, используя имя свойства в качестве индекса. Если результат null, код добавляет имя свойства и некоторые вопросительные знаки в элемент управления ListView. Если объект не является null, код преобразует его в unsigned long и отображает имя свойства и его значение в ListView.

Обратите внимание, что возвращаемое значение находится в KB, поэтому код умножает результат на 1024. Возвращаемое значение равно unsigned long, поэтому оно может обрабатывать значения до 18 446 744 073 709 551 615, что составляет более 16 экзабайт.

Источник: http://csharphelper.com/blog/2016/12/display-memory-usage-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector