我有一个用于图像处理的应用程序,我发现自己通常分配4000x4000ushort大小的数组,偶尔也会分配float等。目前,.NET框架在这个应用程序中似乎是随机崩溃的,几乎总是出现内存不足错误。32mb并不是一个巨大的声明,但如果.NET正在产生内存碎片,那么如此大的连续分配很可能不会按预期运行。有没有办法告诉垃圾收集器更积极,或者对内存进行碎片整理(如果这是问题所在)?我意识到存在GC.Collect和GC.WaitForPendingFinalizers调用,并且我已经在我的代码中大量使用它们,但我仍然遇到错误。可能是因为我正在调用大量使用native代码的dll例程,但我不确定