nteroperabilidade C # + COM, versão determinística

s objetos @COM geralmente têm destruição determinística: eles são liberados quando a última referência é liberad

Como isso é tratado em C # - COM Interop? As classes não implementamIDisposable, não vejo como acionar um IUnknown :: Release explícit

Um teste casual mostra que objetos COM não referenciados são coletados preguiçosamente (ou seja, o coletor de lixo está acionando a liberação). O que devo fazer pelos objetos OCM que precisam ser liberados agressivamente? (por exemplo, mantendo recursos críticos grandes ou compartilhados)?

Problema original: Temos um aplicativo C # que usa muito uma biblioteca COM, e está vazando como uma loucura. Parece que o problema está "entre" o código C ++ e o C # (temos acesso a ambos), mas não podemos identificá-l

questionAnswers(6)

yourAnswerToTheQuestion