Soy consciente de que todos los objetos que implementen IDisposable
se deben eliminar tan pronto como ya no se necesiten para liberar la memoria utilizada por sus recursos no administrados.¿Debo molestarme en deshacerse de los objetos que comparten la vida útil del proceso?
Mi pregunta se refiere a los objetos que sé que de hecho vivirá hasta que el proceso de host se termina. ¿Haría alguna diferencia si los desecho o no? ¿Hay alguna posibilidad de que la memoria no se libere cuando el proceso muere? ¿Qué hay de los objetos GDI? ¿Serán liberados los identificadores de GDI cuando el proceso muera aunque no se eliminen?
Entiendo perfectamente que es una buena práctica deshacerse de todos los objetos de todos modos. Lo pregunto simplemente por curiosidad.
http://blogs.msdn.com/b/kimhamil/archive/2008/11/05/when-to-call-dispose.aspx Guau, la gente saltó sobre mí como un paquete de perros en un gato de 3 patas por decir que no desechar. He descubierto que duele más de lo que ayuda. ¿No debería administrarse el ciclo de vida en un contenedor, no en un código difícil? – CrazyDart
@CrazyDart Gracias, eso es una lectura iterativa, aunque trata principalmente con la pregunta "¿Debería eliminarse el objeto de tipo X normalmente?". La pregunta más específica que estoy tratando de responder es "¿Debería eliminarse el objeto de tipo X, que ** debe eliminarse ** normalmente", incluso si comparte la duración del proceso? – Rotem
@CrazyDart ¿Cuándo se ha deshecho lastimarte? El enlace que le da le da algunos ejemplos de cuándo no se debe llamar a Dispose, pero la regla general debería ser llamarlo a menos que tenga una buena razón para no hacerlo. – hvd