Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 清除字节数组_C#_Garbage Collection - Fatal编程技术网

C# 清除字节数组

C# 清除字节数组,c#,garbage-collection,C#,Garbage Collection,我们目前正在使用由MATLAB制作的.net DLL,并将字节数组从C#发送到该DLL中的方法。 每次调用时,我们都在创建6MB的字节数组。当函数返回时,是否有方法清除此数组 我们已经使用GC.Collect()进行了测试,但没有成功 提前感谢。您可以使用清除阵列。比如说 Array.Clear(YourByteArray,0,YourByteArray.Length); 可以使用清除阵列。比如说 Array.Clear(YourByteArray,0,YourByteArray.Length

我们目前正在使用由MATLAB制作的.net DLL,并将字节数组从C#发送到该DLL中的方法。 每次调用时,我们都在创建6MB的字节数组。当函数返回时,是否有方法清除此数组

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

提前感谢。

您可以使用清除阵列。比如说

Array.Clear(YourByteArray,0,YourByteArray.Length);
可以使用清除阵列。比如说

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

清除数组可以使用
数组完成。清除
,但只要有对数组的引用,就不会释放内存;因为数组的大小是恒定的,所以它的内容实际上并不相关

您需要做的是确保没有对它的引用。只有在这之后,垃圾收集器才会处理它并释放内存(尽管无法保证具体何时会发生)


当相关数组变量不再在作用域中,并且没有其他引用它时,这会自动发生。如果需要手动“删除”,可以通过将变量设置为
null
来实现。这可能是(?)使GC能够发现此处有要收集的内容的最快方法…

清除数组可以使用
数组完成。清除
,但只要有对数组的引用,就不会释放内存;因为数组的大小是恒定的,所以它的内容实际上并不相关

您需要做的是确保没有对它的引用。只有在这之后,垃圾收集器才会处理它并释放内存(尽管无法保证具体何时会发生)



当相关数组变量不再在作用域中,并且没有其他引用它时,这会自动发生。如果需要手动“删除”,可以通过将变量设置为
null
来实现。这可能是(?)使GC能够发现此处有要收集的内容的最快方法…

首先使用array清除数组。清除,然后使用yourArray=null取消引用数组,然后重新声明它

首先使用array清除数组。清除然后使用array=null取消引用数组,然后重新声明它

为什么要调用数组上的GC.Collect
?收集它不是你想在这里做的。你想清除内存只是为了重置值,然后重新使用数组,还是想删除它以释放更多内存?@Kjartan,我想清除它以释放使用的内存这是我的想法。您只需确保删除引用即可(请参阅下面的答案)。为什么要在阵列上调用
GC.Collect
?收集它不是你想在这里做的。你想清除内存只是为了重置值,然后重新使用数组,还是想删除它以释放更多内存?@Kjartan,我想清除它以释放使用的内存这是我的想法。您只需确保删除引用即可(请参阅下面的答案)。这只会清除值,是否有可能释放内存?让框架来处理它。您需要做的就是不要保留对数组的引用。只要框架认为有必要,它就会被释放。这只会清除值,任何可能释放内存的方法?让框架来处理它。您需要做的就是不要保留对数组的引用。它将在框架认为必要时被释放。根据元素类型,将数组中的元素范围设置为零、假或空(在Visual Basic中为空)。我意识到这一点,但如果您不再需要该数组,在我看来,这就像O(n)个额外的、不必要的操作。。如果我没有弄错的话,没有什么大不了的,也没有什么意义。根据元素类型,将数组中的元素范围设置为零、假或空(在Visual Basic中没有)。我意识到这一点,但如果您不再需要该数组,我觉得这就像O(n)额外的、不必要的操作。。如果我没弄错的话,没什么大不了的,也没什么意义。。