COM互操作问题

时间:2010-09-16 10:54:26

标签: c# com interop

在我的C#应用​​程序中使用COM互操作。

我有这行代码:

IMyInterface objData = MyCOMClass.GetData();

我的问题是:

我是否需要使用objData释放资源? System.Runtime.InteropServices.Marshal.ReleaseComObject(objData);

感谢阅读。

1 个答案:

答案 0 :(得分:2)

是的,除非您可以等到GC清理它。

值得注意的是,COM interop为每个接口创建一个COM引用。

IMyInterface x = MyCOMClass.GetData();
IMyOtherInterface y = (IMyOtherInterface)x;
IMyInterface z = x;

Marshal.ReleaseComObject(x);
Marshal.ReleaseComObject(y);

或     Marshal.FinalReleaseComObject(X); //如果你知道没有其他人使用它