3
在我的C#應用程序中使用COM互操作。COM互操作問題
我有這行代碼:
IMyInterface objData = MyCOMClass.GetData();
我的問題在這裏:
我需要用將發佈objData資源? System.Runtime.InteropServices.Marshal.ReleaseComObject(objData);
感謝您的閱讀。
在我的C#應用程序中使用COM互操作。COM互操作問題
我有這行代碼:
IMyInterface objData = MyCOMClass.GetData();
我的問題在這裏:
我需要用將發佈objData資源? System.Runtime.InteropServices.Marshal.ReleaseComObject(objData);
感謝您的閱讀。
是的,除非您可以等到GC清理乾淨。
值得注意的是,COM互操作爲每個接口創建一個COM引用。
IMyInterface x = MyCOMClass.GetData();
IMyOtherInterface y = (IMyOtherInterface)x;
IMyInterface z = x;
Marshal.ReleaseComObject(x);
Marshal.ReleaseComObject(y);
或 Marshal.FinalReleaseComObject(X); //如果你知道沒有其他人使用它
感謝adrianm爲您的答覆。這有助於。 – Jimmy 2010-09-16 12:18:56
可能的重複[在.NET應用程序中清理COM對象的最佳方法](http://stackoverflow.com/questions/3650878/best-way-to-clean -up-a-com-object-in-a-net-application) – Richard 2010-09-16 11:02:37
在這個問題中,我想知道是否需要使用ReleaseComObject清理一個類型爲「interface」的對象。因此我發佈了一個新問題。謝謝。 – Jimmy 2010-09-16 12:18:13