Jim,
Se oyó correctamente. Limpia memoria periódicamente a través de un mecanismo llamado Garbage Collector. Puede "forzar" la recolección de basura a través de una llamada como la siguiente.
GC.Collect();
Le recomiendo que lea this MSDN article on garbage collection.
EDITAR 1: "Force" fue entre comillas. Para ser más claro como lo fue otro cartel, esto realmente solo lo sugiere. Realmente no puedes hacer que suceda en un punto específico en el tiempo. De ahí el enlace al artículo sobre recolección de basura en .NET
EDIT 2: Me di cuenta de que todos aquí solo respondieron directamente a su pregunta principal. En cuanto a tu pregunta secundaria. El uso de Visual Studio 2008 Express seguirá utilizando el .NET Framework, que es el que realiza la recolección de elementos no utilizados. Entonces, si alguna vez actualiza a la edición profesional, aún tendrá las mismas capacidades/limitaciones de administración de memoria.
Editar 3: This wikipedia aritcles on finalizers da algunos buenos consejos de lo que es apropiado hacer en un finalizador. Básicamente, si está creando un objeto que tiene acceso a recursos críticos, o si está consumiendo dicho objeto, implemente IDispose y/o aproveche el usando la instrucción. El uso llamará automáticamente al método Dispose, incluso cuando se lanzan excepciones. Eso no quiere decir que usted no necesita dar a la carrera finalizadores pista ...
detenerlo. No lo hagas Déjalo. No te atrevas No. No es tuyo. Vete, piensa en otra cosa. – Will
@Will. Tocado en un punto dolorido ¿no? –
@Jim A menos que sea un experto y sepa lo que está haciendo, no lo haría. Incluso como experto, no lo haría. Si encuentra que necesita llamar al GC, apuesto a que hay otro problema ... es decir, una * pérdida de memoria *. –