清除字节数组

时间:2014-03-25 10:23:43

标签: c# garbage-collection

我们目前正在使用由MATLAB制作的.net DLL,我们正在将C#中的字节数据发送到此DLL中的Method。 每次调用时,我们都会创建6MB的字节数组。当函数返回时,有没有办法清除这个数组?

我们已经使用GC.Collect()进行了测试,但没有运气。

先谢谢。

3 个答案:

答案 0 :(得分:3)

您可以使用Array.Clear清除阵列。例如

Array.Clear(YourByteArray,0,YourByteArray.Length);

答案 1 :(得分:1)

清除数组可以使用Array.Clear完成,但只要存在对数组的引用,就不会释放内存;由于数组具有恒定的大小,因此它的内容并不真正相关。

您需要做的是确保没有任何参考。只有在那之后,垃圾收集器才会处理它并释放内存(尽管无法保证何时会发生这种情况)。

当相关的数组变量不在范围内时,这可能会自动发生,并且没有其他内容引用它。如果你需要"删除"手动,您可以通过将变量设置为null来实现此目的。这可能是(?)使GC能够发现在这里收集的东西的最快方式......

答案 2 :(得分:0)

首先使用Array.Clear清除数组,然后使用yourArray = null取消引用数组,并重新声明它