Как заставить работать сборщик мусора? - PullRequest
124 голосов
/ 23 ноября 2010

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

Ответы [ 8 ]

172 голосов
/ 23 ноября 2010

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

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

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

165 голосов
/ 23 ноября 2010

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

18 голосов
/ 23 ноября 2010
GC.Collect() 

от MDSN ,

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

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

12 голосов
/ 23 ноября 2010
11 голосов
/ 23 ноября 2010

GC.Collect();

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

7 голосов
/ 23 ноября 2010

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

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

GC.Collect()
4 голосов
/ 10 августа 2016

Я думаю, что .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();

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

0 голосов
/ 07 мая 2019
GC.Collect()

вы можете запустить, чтобы заботиться о неуправляемых объектах, но если ваши объекты - GC Generation 1, то это не приведет к успеху для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...