Недавно я встретил этот элемент управления VerticalLabel в CodeProject.
Я заметил, что метод OnPaint создает, но не удаляет объекты Pen и SolidBrush.
Это имеет значение, и если да, то как я могу продемонстрировать все проблемы, которые могут возникнуть?
EDIT
Это не вопрос о шаблоне IDisposable в целом. Я понимаю, что вызывающие абоненты обычно должны вызывать Dispose в любом классе, который реализует IDisposable.
Я хочу знать, какие проблемы (если таковые имеются) можно ожидать, когда объект GDI + не будет удален, как в приведенном выше примере. Понятно, что в связанном примере OnPaint может быть вызван много раз до того, как сборщик мусора начнет работать, поэтому есть возможность выбежать из ручек.
Однако я подозреваю, что GDI + в некоторых случаях повторно использует дескрипторы (например, если вы используете перо определенного цвета из класса Pens, оно кэшируется и повторно используется).
То, что я пытаюсь понять, может ли код, подобный этому в связанном примере, уйти от пренебрежения вызовом Dispose.
И если нет, чтобы увидеть образец, который продемонстрировал, какие проблемы он может вызвать.
Я должен добавить, что я очень часто (включая документацию OnPaint в MSDN) видел образцы кода WinForms, которые не могут уничтожить объекты GDI +.