Как заставить сборщика мусора запустить?

Интервьюер спросил меня об этом сегодня... есть ли ответ?

Ответ 1

System.GC.Collect() принудительно запускает сборщик мусора. Это не рекомендуется, но может быть использовано, если возникают ситуации.

Ответ 2

Не рекомендуется вызывать gc явно, но если вы вызываете

GC.Collect();
GC.WaitForPendingFinalizers();

Он будет вызывать GC явно в вашем коде, не забудьте вызвать GC.WaitForPendingFinalizers(); после GC.Collect().

Ответ 3

GC.Collect() 

из MDSN,

Используйте этот метод, чтобы попытаться восстановить все которая недоступна.

Все объекты, независимо от того, как долго они были в памяти, являются считается для сбора; Однако, объекты, на которые ссылаются управляемые код не собираются. Использовать это метод, чтобы заставить систему попытаться вернуть максимальную сумму доступной памяти.

Ответ 5

GC.Collect();

Имейте в виду, что сборщик мусора не всегда может очистить то, что вы ожидаете...

Ответ 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, то это не приведет к успеху для вас.