В общем, вы не должны беспокоиться или думать о том, когда запускается GC.
Сборщик мусора будет работать по мере необходимости в неопределенное время, выбранное средой выполнения.
Если вы хотите более точный контроль зерна над ГХ (что я не рекомендую, за исключением очень специфических обстоятельств), вы можете использовать GC.AddMemoryPressure и GC.RemoveMemoryPressure . Это не заставит GC работать, а скорее намекает на то, что в игре есть другая память, кроме выделенной CLR, управляемой памяти. Это может привести к более частому запуску, что может быть полезно, если вы выделяете большие блоки памяти в собственном коде.
Нет прямого API для отслеживания прогонов GC. (Например, класс GC не содержит никаких событий, уведомляющих о том, что происходит сборка мусора.) Единственный прямой способ узнать, в частности, когда GC выполняется, - это использовать API профилирования .