У меня есть COM-объект, который мы вызываем из C#. Это отлично работает, и у меня есть свой собственный пул объектов, которые я могу использовать, когда захочу. Теперь мне нужно убить объект. Я попытался выпустить объект COM явно, а затем собрать мусор из другого потока, но это ничего не делает. У кого-нибудь есть другие идеи, чтобы убить этот объект? Спасибо за помощь.Killing COM object from C#
Я попытался
System.Runtime.InteropServices.Marshal.ReleaseComObject(myApp);
GC.Collect();
GC.WaitForPendingFinalizers();
myApp = null;
и создать его
myApplication.ApplicationClass myApp = new myApplication.ApplicationClass();
это полный код этот объект ком написано в 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
Это не компонент excel или word, это активная x dll, созданная мной. – Pradeep
Опубликуйте код VB6, который обращается к базе данных VFP. Это может быть ваш код VB6, который блокирует DB, а не проблему с конца .net. – shahkalpesh