Ответ 1
System.GC.Collect()
принудительно запускает сборщик мусора. Это не рекомендуется, но может быть использовано, если возникают ситуации.
Интервьюер спросил меня об этом сегодня... есть ли ответ?
System.GC.Collect()
принудительно запускает сборщик мусора. Это не рекомендуется, но может быть использовано, если возникают ситуации.
Не рекомендуется вызывать gc явно, но если вы вызываете
GC.Collect();
GC.WaitForPendingFinalizers();
Он будет вызывать GC явно в вашем коде, не забудьте вызвать GC.WaitForPendingFinalizers();
после GC.Collect()
.
GC.Collect()
из MDSN,
Используйте этот метод, чтобы попытаться восстановить все которая недоступна.
Все объекты, независимо от того, как долго они были в памяти, являются считается для сбора; Однако, объекты, на которые ссылаются управляемые код не собираются. Использовать это метод, чтобы заставить систему попытаться вернуть максимальную сумму доступной памяти.
Имейте в виду, что сборщик мусора не всегда может очистить то, что вы ожидаете...
Вы не хотите принудительно запускать сборщик мусора.
Однако, если вы когда-либо (как чисто академическое упражнение, конечно):
GC.Collect()
Я думаю, что .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();
Я думаю, что это.. Надеюсь, я помогу кому-то.
GC.Collect();
мы вызываем сборщик мусора методом сбора сборщика мусора. в основном нет необходимости вызывать сборщик мусора, потому что он постоянно работает в фоновом процессе по отдельной теме
GC.Collect()
вы можете запустить, чтобы заботиться о неуправляемых объектах, но если ваши объекты - GC Generation 1, то это не приведет к успеху для вас.