Существует два режима сборки мусора .NET: сервер и рабочая станция.Для рабочей станции у вас будет один поток сборщика мусора на процесс .NET.Если вы используете режим сбора мусора на сервере, у вас будет один поток сборщика мусора на процесс и процессор.Поэтому, если у вас есть процесс .NET, работающий в качестве сервера на 4-ядерном процессоре, у вас будет 4 потока сборщика мусора.
Также для .NET 4 существует новый режим «фоновой сборки мусора».Он будет собирать элементы в поколении 0 и 1. одновременно.
Сборка мусора может произойти, даже если у вас достаточно физической памяти..NET выделит память для своей кучи в блоках.В общих чертах, происходит что-то вроде этого: когда требуется new
памяти, .NET попытается найти блок памяти в своей куче, который будет соответствовать требуемому фрагменту памяти.В случае неудачи будет запущен GC, чтобы попытаться собрать ненужные объекты.Только если это не освобождает достаточно памяти, новый блок памяти будет выделен для кучи из базовой ОС.
Подробности в статье MSDN, Основы сборки мусора .
При всем этом, я полностью согласен с одним из других ответов на этот вопрос: Не делайте никаких предположений в отношении GC.Для вашего приложения не должно иметь значения, как распределяется и собирается память.