Тема: Об'єкт не хоче знищуватися (видалятися) ?
Є таки код
class newclass
{
int count = 1000000;
public List<int> i = new List<int>();
public List<int> j = new List<int>();
public newclass()
{
for (int n = 0; n < count; n++)
{
i.Add(n);
j.Add(1000000 - n);
}
}
}
class Program
{
static void Main(string[] args)
{
var p = Process.GetCurrentProcess();
long start_mem = GC.GetTotalMemory(true);
{
newclass nc = new newclass();
nc = null;
}
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
double used_mem_median =
(GC.GetTotalMemory(true) - start_mem);
Console.WriteLine(
"Size = " +
used_mem_median
);
Console.ReadKey();
}
}
Я роблю перевірку (на прикладі коду що я додав у тему) на "витік пам'яті" згідно з інструкції що я найшов у статті, пункт 4
https://michaelscodingspot.com/find-fix … practices/
Встановив для створеного об'єкту ІД і перевіряю його в Immediate Window
На зображенні:
1) Створюю ІД
2) Перевіряю після виходу з дужок
Результат - об'єкт існує. Питання: чому об'єкт не знищився ? Значення об'єкту встановлено в нуль, об'єкт знаходиться в локальній зоні видимості (в дужках), і він ніде не використовується.