|
}
В случае принудительной активизации сборки мусора не забывайте вызвать метод GC.WaitForPendingFinalizers(). Это дает возможность всем финализируемым объектам произвести любую необходимую очистку перед продолжением работы программы. Метод GC.WaitForPendingFinalizers() незаметно приостанавливает выполнение вызывающего "потока" во время процесса сборки мусора, что очень хорошо, поскольку исключает вероятность вызова в коде каких-либо методов на объекте, который в текущий момент уничтожается.
Методу GC.Collect() можно передать числовое значение, отражающее старейшее поколение объектов, в отношении которого должен проводиться процесс сборки мусора. Например, чтобы CLR -среда анализировала только объекты поколения 0, необходимо использовать следующий код:
static void Main(string [ ] args)
{
// Исследование только объектов поколения 0
GC.Collect(0);
GC.WaitForPendingFinalizers();
}
Вдобавок методу Collect() во втором параметре может передаваться значение перечисления GCCollectionMode, которое позволяет более точно указать, каким образом исполняющая среда должна принудительно инициировать сборку мусора. Ниже показаны значения, доступные в этом перечислении:
Дата добавления: 2015-07-25; просмотров: 46 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Взаимодействие со сборщиком мусора | | | Public enum GCCollectionMode |