vb.net调用MATLAB生成的com组件的内存问题
各位大神,小弟使用matlab的函数(一个很简单的求和函数)生成了com组件,然后在vb.net中进行调用。在进行调用时,发现如果使用下面的方式内存会一直增加。ReleaseComObject返回的值n是0,表示应该已经释放完了,但是内存一直没有下降。
calculation_function1 = New add_com.jisuan '载入时初始化
For i = 1 To 1000
calculation_function1.add(1, c, i, 2)
TextBox1.Text = c
Next
n = Marshal.ReleaseComObject(calculation_function1)
但是我使用下面的方法时,内存一直很稳定。我的问题是同样是调用多次calculation_function1,初始化和释放的位置不同(比如我这两个例子)为什么会导致内存一个释放完成,一个释放未完成呢? 上面的程序,在循环外面进行初始化是我希望的,因为每次初始化com组件时速度比较慢,所以同样是进行完整的一次循环,计算速度上面明显要快。有什么办法修改代码即保证计算速度,同时内存又可以正确释放呢?先行谢过。
For i = 1 To 1000
calculation_function1 = New add_com.jisuan '载入时初始化
calculation_function1.add(1, c, i, 2)
TextBox1.Text = c
n = Marshal.ReleaseComObject(calculation_function1)
Next