在我的C#应用程序中使用COM互操作。
我有这行代码:
IMyInterface objData = MyCOMClass.GetData();
我的问题是:
我是否需要使用objData释放资源? System.Runtime.InteropServices.Marshal.ReleaseComObject(objData);
感谢阅读。
答案 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); //如果你知道没有其他人使用它