在我的C#程序中我有功能,在其中,我创建长度为1000000的字节数组,当执行该功能时,内存显示内存使用量增加1MB。问题出在这里,从函数返回后,在函数中分配的1MB内存不释放,为什么????
垃圾收集器不会立即释放内存但是
当满足下列条件之一时,将发生垃圾收集:
系统物理内存较低。这可以通过OS的低内存通知或主机指示的低内存来检测。
托管堆上已分配对象使用的内存超过可接受的阈值。在该过程运行时不断调整该阈值。
调用GC.Collect方法。几乎在所有情况下,您都不必调用此方法,因为垃圾收集器会持续运行。此方法主要用于独特的情况和测试。
你可以找到更多here。