Fa una classe wrapper chiamare un componente COM tramite C # necessità di attuare il pattern Dispose?

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

  •  21-09-2019
  •  | 
  •  

Domanda

Ho una classe scritta in C # che agisce come un involucro attorno a un componente COM. Il componente COM è presto legato e il RCW è stato generato da Visual Studio. Devo implementare un pattern Dispose nella mia classe wrapper per ripulire il riferimento COM, o devo solo lasciare gestire la GC esso, in quanto ha già un RCW?

È stato utile?

Soluzione

C'è raramente un necessità per implementare lo smaltimento, ma ci sono spesso buone ragioni per farlo.

Se l'oggetto COM rappresenta una risorsa significativa che ha bisogno di essere liberato rapidamente allora che potrebbe essere un buon motivo per implementare Dispose.

Nel vostro metodo dispose che si può fare: -

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

Quindi smaltire la classe rilascerà immediatamente l'oggetto COM.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top