我有一個COM對象,我們從C#調用。這很好,我有我自己的對象池,我可以隨時使用它。現在我需要殺死對象。我試過顯式地釋放COM對象,然後從另一個線程中進行垃圾收集,但是它什麼都不做。有沒有人有任何其他想法來殺死這個對象?謝謝您的幫助。從C中kill COM對象#
我已經試過
System.Runtime.InteropServices.Marshal.ReleaseComObject(myApp);
GC.Collect();
GC.WaitForPendingFinalizers();
myApp = null;
,我通過
myApplication.ApplicationClass myApp = new myApplication.ApplicationClass();
創建它,這是完整的代碼 此COM對象是寫在VB6,下面是C#代碼調用VB6組件
myApplication.ApplicationClass myApp = new myApplication.ApplicationClass();
string user = this._User;
string pass = this._Pass;
string company = this.companyNumber;
try
{
if (myApp.Login(ref user, ref pass, ref company))
{ //執行一些操作 } else { throw new System.Exception(MESSAGE_LOGINERROR); } } 最後 { System.Runtime.InteropServices.Marshal.ReleaseComObject(myApp);
GC.Collect();
GC.WaitForPendingFinalizers();
M2MApp = null;
}
感謝, 普拉迪普
ApplicationClass庫來自哪個庫?它是否包含在下面的Microsoft Excel/Word實例? – shahkalpesh 2010-06-15 06:21:21
它不是一個excel或word組件,它是由我創建的一個活動的x dll。 – Pradeep 2010-06-15 06:26:25
發佈訪問VFP數據庫的VB6代碼。這可能是你的VB6代碼鎖定了數據庫,而不是.net結尾的問題。 – shahkalpesh 2010-06-16 12:21:55