Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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# 如果我从列表中删除元素,这是否意味着我的RAM也会通过垃圾收集器或其他方式被清除/释放?_C#_.net_Memory Management_Garbage Collection - Fatal编程技术网

C# 如果我从列表中删除元素,这是否意味着我的RAM也会通过垃圾收集器或其他方式被清除/释放?

C# 如果我从列表中删除元素,这是否意味着我的RAM也会通过垃圾收集器或其他方式被清除/释放?,c#,.net,memory-management,garbage-collection,C#,.net,Memory Management,Garbage Collection,在我的程序中,我在一个循环的列表中添加了数百万条记录,因此随着程序的继续,我的RAM似乎也在增长(我怀疑是因为列表中添加了新的和新的元素)-因此,如果一个计时器滴答声事件或只是按下按钮导致列表中出现。Clear():这会立即释放我的RAM吗?内存似乎增长了很多,达到了500mb以上,所以亚马逊实例上的免费数量有限,这是一个问题……thanx List有Clear()或Remove()方法来清除或删除列表中的项。 强制清除列表中未使用的对象。或者可以将空值分配给那些未使用的对象,以便空分配的对象可

在我的程序中,我在一个循环的列表中添加了数百万条记录,因此随着程序的继续,我的RAM似乎也在增长(我怀疑是因为列表中添加了新的和新的元素)-因此,如果一个计时器滴答声事件或只是按下按钮导致列表中出现。Clear():这会立即释放我的RAM吗?内存似乎增长了很多,达到了500mb以上,所以亚马逊实例上的免费数量有限,这是一个问题……thanx

List有Clear()或Remove()方法来清除或删除列表中的项。 强制清除列表中未使用的对象。或者可以将空值分配给那些未使用的对象,以便空分配的对象可以标记GC它未使用且已准备好收集

在使用后将List对象赋值为Null也将有助于GC很好地处理它。 ie:myListVariable=null;
这样,GC就可以清除内存,并且可以从未使用的对象中释放内存。

确实不建议这样做,但是您可以在清除列表后强制运行垃圾收集器吗

我找到了这个链接:

我将研究在类中实现iDisposable接口。这将使其成为一个托管资源,并在处理完数据后自动清除系统资源


祝你好运

简短回答:您创建的每个对象都有一个地址和一点内存空间。所以,是的,它会释放RAM,但不会立即释放。您不能确定GC是否有时间,资源是否免费。^——只要它们是托管资源。您必须处理非托管的