Интервьюер спросил меня об этом сегодня... есть ли ответ?
Как заставить сборщика мусора запустить?
Ответ 1
System.GC.Collect()
принудительно запускает сборщик мусора. Это не рекомендуется, но может быть использовано, если возникают ситуации.
Ответ 2
Не рекомендуется вызывать gc явно, но если вы вызываете
GC.Collect();
GC.WaitForPendingFinalizers();
Он будет вызывать GC явно в вашем коде, не забудьте вызвать GC.WaitForPendingFinalizers();
после GC.Collect()
.
Ответ 3
GC.Collect()
из MDSN,
Используйте этот метод, чтобы попытаться восстановить все которая недоступна.
Все объекты, независимо от того, как долго они были в памяти, являются считается для сбора; Однако, объекты, на которые ссылаются управляемые код не собираются. Использовать это метод, чтобы заставить систему попытаться вернуть максимальную сумму доступной памяти.
Ответ 4
Ответ 5
Имейте в виду, что сборщик мусора не всегда может очистить то, что вы ожидаете...
Ответ 6
Вы не хотите принудительно запускать сборщик мусора.
Однако, если вы когда-либо (как чисто академическое упражнение, конечно):
GC.Collect()
Ответ 7
Я думаю, что .Net Framework делает это автоматически, но на всякий случай. Во-первых, обязательно выберите то, что вы хотите удалить, а затем вызовите сборщик мусора:
randomClass object1 = new randomClass
...
...
// Give a null value to the code you want to delete
object1 = null;
// Then call the garbage collector to erase what you gave the null value
GC.Collect();
Я думаю, что это.. Надеюсь, я помогу кому-то.
Ответ 8
GC.Collect();
мы вызываем сборщик мусора методом сбора сборщика мусора. в основном нет необходимости вызывать сборщик мусора, потому что он постоянно работает в фоновом процессе по отдельной теме
Ответ 9
GC.Collect()
вы можете запустить, чтобы заботиться о неуправляемых объектах, но если ваши объекты - GC Generation 1, то это не приведет к успеху для вас.