Метод Collect
GC.Collect подсказывает
сборщику поработать сейчас, но в
обычном коде его редко вызывают.
После вызова удобно проверить
IsAlive
слабой ссылки. Обзор -
GC.
Синтаксис
GC.Collect();
Пример
Давайте вызвать сборку:
using System;
class Program
{
static void Main()
{
GC.Collect();
Console.WriteLine("abcde");
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте обнулить ссылку и собрать мусор:
using System;
class Program
{
static void Main()
{
object obj = new object();
obj = null;
GC.Collect();
Console.WriteLine("abcde");
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте вызвать сборку перед проверкой слабой ссылки:
using System;
class Program
{
static void Main()
{
object obj = new object();
var weak = new WeakReference(obj);
obj = null;
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
bool res = weak.IsAlive;
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Смотрите также
-
метод
GetGeneration,
поколение объекта -
метод
GetTotalMemory,
оценка памяти -
свойство
IsAlive,
жива ли цель -
GC,
класс сборщика