Pregunta

Actualmente estoy usando un delegado estático en una clase de envoltorio para una DLL C para evitar que el delegado, que apunta a una función insegura, se recolecta aturdir.
Esto funcionó bien hasta que ahora tenga el requisito de admitir múltiples instancias de la clase. Una solución puede ser mantener una lista de los delegados estáticos, pero me gustaría encontrar una solución más simple.

¿Fue útil?

Solución

Para evitar que se recolecte un objeto, debe mantener una referencia a él.

Los miembros estáticos en clases estáticas viven para la vida útil de la aplicación.

Por ejemplo, los miembros de la clase, dependiendo del diseño de su clase y el diseño de proyectos, puede adoptar diferentes enfoques. Mantener una lista estática puede no ser una mala idea.

Mi única pregunta es cómo puede imaginar que se está recolectando el delegado. Porque, si puede acceder a él, debe haber mantenido una referencia de ello. En cuyo caso, debe haberse quedado en la memoria.

Otros consejos

Creo que cometiste un error: las variables estáticas viven en todo el ciclo de vida de la aplicación, nunca se verán cuando la aplicación se esté ejecutando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top