¿Tiene una clase contenedora de llamar a un componente COM a C # necesidad de implementar el patrón botar?

StackOverflow https://stackoverflow.com/questions/1559227

  •  21-09-2019
  •  | 
  •  

Pregunta

Tengo una clase en C # que está actuando como una envoltura alrededor de un componente COM. El componente COM está obligado temprana y la RCW ha sido generado por Visual Studio. Debería aplicar un patrón disponer en mi clase de contenedor para limpiar la referencia COM, o debo dejar que el GC manejarlo, ya que ya tiene un RCW?

¿Fue útil?

Solución

No es rara vez una necesidad para aplicar Desechar pero a menudo hay buenas razones para hacerlo.

Si el objeto COM representa un recurso importante que necesita ser liberado rápidamente entonces que podría ser una buena razón para poner en práctica Desechar.

En el método dispose que puede hacer: -

 System.Runtime.InteropServices.Marshal.ReleaseComObject(myRCW);

Por lo tanto, la eliminación de su clase dará a conocer el objeto COM de inmediato.

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