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



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

285   7  
c#

7 ответов:

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

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

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

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

GC.Collect() 

С MDSN,

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

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

GC.Collect();

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

вы не хотите принудительно запускает сборщик мусора.

однако, если вы когда-либо делал (как чисто академическое упражнение, конечно):

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();

Я думаю, что это он.. Надеюсь, я кому-то помогу.

Comments

    Ничего не найдено.