2
我有一個VB6代碼,通過使用後期綁定調用C#,當C#完成VB6不釋放C#引用,我試圖在C#IDisposable執行 我試着設置參考沒有和它沒有工作VB6調用C#不釋放
是否有可能VB6代碼不釋放ref? 是否有任何其他方式來釋放對C#代碼的所有引用? 有沒有我可能使用的註釋?
爲了說明VB6是第三方代碼,我不能添加功能/代碼調用 。
感謝 X
VB6
Private Sub Command1_Click()
Dim obj As Object
Set obj = CreateObject("test1.class1")
obj.msg
Set obj = Nothing
End Sub
C#
namespace test1
{
[ClassInterface(ClassInterfaceType.None)]
public class Class1 : IDisposable
{
public void msg()
{
Console.Write("msg");
}
~Class1()
{
Console.Write("~Class1");
}
public void Dispose()
{
Console.Write("Dispose");
}
}
}
爲什麼你認爲C#對象沒有被釋放?不要忘記.NET垃圾收集器不是確定性的。 – phoog 2012-03-05 23:05:01
您是否曾嘗試在VB6代碼中顯式調用'Dispose()'而不是將參考設置爲'Nothing'? – 2012-03-05 23:05:28
VB6代碼是第三方應用程序,我不能添加調用Dispose(), ,我知道它不釋放C#,因爲當我嘗試再次構建C#時,DLL被另一個進程(VB6)鎖定... – Xoerk 2012-03-05 23:34:12