Технические вопросы и ответы QA1608

Выпуск Windows COM iTunes от Управляемого кода

Q: Как я должным образом выпускаю iTunes для Windows COM object от управляемого кода?

A: Как я должным образом выпускаю iTunes для Windows COM object от управляемого кода?

Общеязыковая среда выполнения Microsoft.NET Framework представляет COM-объекты через прокси, названный оберткой вызовов среды выполнения (RCW). Единственный RCW создается для каждого COM-объекта, и он поддерживает подсчет ссылок, постепенно увеличивающийся каждый раз, когда указатель COM-интерфейса отображается на нем. Когда подсчет ссылок достигает нуля, время выполнения выпускает все свои ссылки на неуправляемом COM-объекте. Поэтому, если все ссылки не были выпущены на RCW, COM-объект не будет выпущен.

Для выпуска COM-объектов правильно, необходимо вызвать Платформу.NET Marshal.ReleaseComObject метод. Этот метод постепенно уменьшает подсчет ссылок предоставленного RCW. Необходимо использовать этот метод для освобождения базового COM-объекта как показано в Перечислении 1 для iTunes COM:

Перечисление 1  , Выпускающее iTunes COM использование.NET Marshal.ReleaseComObject метод.

using System.Runtime.InteropServices; using iTunesLib;  iTunesApp iTApp;  ... Marshal.ReleaseComObject(iTApp); // release the iTunes COM iTApp = null;


История версии документа


ДатаПримечания
21.08.2008

Новый документ, описывающий, как должным образом выпустить Windows COM iTunes от управляемого кода