¿Cuándo dispone los recursos de GDI +?

Muchas clases de GDI + implementan IDisposable, pero no estoy seguro de cuándo debo llamar a Dispose. Está claro para las instancias que creo connew o métodos estáticos comoGraphics.CreateGraphics. Pero, ¿qué pasa con los objetos que devuelven los captadores de propiedades? A menudo escribo código como este:

var oldRgn = g.Clip;
using (var rectRegion = new Region(rectangle))
{
    g.Clip = rectRegion;
    // draw something
}
g.Clip = oldRgn;

¿Se supone que debo disponer?oldRgn ¿después de esto? Mi generador de perfiles de memoria me dice que hay instancias no expuestas si no lo hago. Y mirar la implementación en el reflector al menos confirma que el getter aparentemente crea una nueva instancia cada vez que se invoca:

// Graphics.Clip code from Reflector:
public Region get_Clip()
{
    Region wrapper = new Region();
    int status = SafeNativeMethods.Gdip.GdipGetClip(new HandleRef(this, this.NativeGraphics), new HandleRef(wrapper, wrapper.nativeRegion));
    if (status != 0)
    {
        throw SafeNativeMethods.Gdip.StatusException(status);
    }
    return wrapper;
}

No pude encontrar nada sobre eso en el MSDN, y las muestras en la documentación nunca parecen deshacerse de nada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta