Recientemente me encontré con this VerticalLabel control on CodeProject.¿Es importante desechar SolidBrush y Pen?
Observé que el método OnPaint crea pero no elimina los objetos Pen y SolidBrush.
¿Esto es importante y, en caso afirmativo, cómo puedo demostrar los problemas que pueda causar?
EDITAR
Ésta no es una pregunta sobre el patrón IDisposable en general. Entiendo que las personas que llamen normalmente deberían llamar a Dispose en cualquier clase que implemente IDisposable.
Lo que quiero saber es qué problemas (si hay alguno) pueden esperarse cuando el objeto GDI + no está dispuesto como en el ejemplo anterior. Está claro que, en el ejemplo vinculado, se puede llamar a OnPaint muchas veces antes de que el recolector de basura entre, así que existe el potencial de quedarse sin controladores.
Sin embargo, sospecho que GDI + reutiliza internamente los controladores en algunas circunstancias (por ejemplo, si usa un lápiz de un color específico de la clase Pens, se almacena en caché y se vuelve a utilizar).
Lo que estoy tratando de entender es si un código como ese en el ejemplo vinculado podrá salirse con la negligencia de llamar a Dispose.
Y si no, para ver una muestra que demostró los problemas que puede causar.
Debo agregar que he visto muy a menudo (including the OnPaint documentation on MSDN) ejemplos de código de WinForms que no eliminan los objetos GDI +.
entiendo que con el tiempo va a ser GC'd, pero cuando? No esperaría que la memoria creciera, sino la cantidad de controladores que se usan. Y para probar todos los casos, necesitaría estar seguro de crear pinceles/bolígrafos de diferentes colores. – Joe