Это в основном ориентировано на разработчиков настольных приложений.
Как создать блок кеширования, который хорошо работает с GC?
Как сообщить сборщику мусора, что я только что выполнил очистку кеша и пора сделать сборщик мусора?
Как я могу точно определить, когда пора выполнить очистку кеша?
Есть ли какие-нибудь готовые схемы кеширования, из которых я мог бы позаимствовать некоторые идеи?





Все, что вам когда-либо понадобится знать (и кое-что еще):
http://msdn.microsoft.com/en-us/library/ee817645.aspx
О, и GC.Collect () заставляет собирать.
Хотя я, очевидно, не могу говорить о специфике вашего приложения, в большинстве случаев вам не следует привязывать свою реализацию кэширования к некоторым предполагаемым ожиданиям того, как будет работать сборщик мусора. Как упоминает Стю, вызов GC.Collect () заставит сборку (с перегрузками для определенного поколения), но чаще всего это приводит к худшей производительности, чем просто позволяя GC управлять самим собой.
Если вы обнаружите (после проведения некоторого реального тестирования производительности), что вам необходимо взаимодействовать с GC, убедитесь, что вы приняли во внимание различные типы GC, которые в настоящее время имеет фреймворк (см. здесь для получения дополнительной информации).