Принудительная очистка памяти - C#

Узнай цену своей работы

Формулировка задачи:

Знаю про встроенный сборщик мусора но вот у меня как-то он не работает, видимо из-за того что пишу на коленках. Собственно в программе есть массивчик MX, который при выполнении занимает 600 метров. Отслеживаю это все через диспетчер задач. После того как программа завершается (а вернее завершается обработка события нажатия кнопки), в диспетчере задач она так и продолжает занимать 600 метров. Хотя массив MX уже не нужен. Вот как его принудительно уничтожить?
MX=null;
не помогло.

Решение задачи: «Принудительная очистка памяти»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
 
class Program
{
    static void Main()
    {
        string[, , ,] MX = new string[303, 100, 34, 305];
        for (int i = 0; i < MX.GetLength(0); i++)
            for (int j = 0; j < MX.GetLength(1); j++)
                for (int k = 0; k < MX.GetLength(2); k++)
                    for (int l = 0; l < MX.GetLength(3); l++)
                        MX[i, j, k, l] = "A";
 
        // Здесь диспетчер задач показывает 1235316 КБ
        Console.WriteLine("Заполнен");
        Console.ReadLine();
 
        MX = null;
        GC.Collect();
 
        // Здесь 5564 КБ
        Console.WriteLine("Прошла сборка");
        Console.ReadLine();
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5