Когда вы запрашиваете графический объект, Windows выделит вам немного памяти. Вызов утилизирует для вас эту память. Если вы не вызовите dispose, все эти дескрипторы памяти останутся открытыми, и в конечном итоге ваша система исчерпает ресурсы, станет медленнее и в конечном итоге остановится (однако закрытие программы может их освободить).
Поскольку вы используете .NET, когда вы закончите использовать графический объект, сборщик мусора в конечном итоге вызовет для вас утилиту dispose. Проблема с сборщиком мусора заключается в том, что вы никогда не знаете, когда он очистит объект, поэтому он может оставить эти ресурсы открытыми дольше, чем необходимо.
Это говорит о том, что вам никогда не придется звонить распоряжаться собой. Гораздо лучше будет поместить ваш объект в область действия:
using(Graphics g)
{
// do something with the resource
}
Теперь, когда вы оставите это, используя область действия, объект будет уничтожен, и утилизация будет вызвана для вас автоматически. Вы должны поместить все объекты, для которых определен метод dispose, в область применения.