控制台程序的main函数即为静态,其他函数被调用的时候会一直分配内存,导致溢出。
使用GC.collect()来clearmemory只能虚假释放内存,无效。
使用 a = null也没有用。
解决办法:
如果是循环或者多次调用,同一static函数readdata(),那么可以把该函数返回值设为void
在循环调用之前,实现定义好返回值,例如
float[] bref = new float[Xsize * Ysize];
把该矩阵作为函数的出口参数,readdata(float[] bref),然后再循环调用readata函数
每次都不会占用新的内存,只是重复使用bref第一次分配的内存空间。
不再出现outofmemory
c# console 控制台 static静态 内存溢出 outofmemory 解决方案
最新推荐文章于 2024-02-20 11:26:54 发布