所以我有一个程序可以每秒增加 5MB 的内存。由于每个应用程序只能分配 2GB,因此在启动程序并收到 System.OutOfMemoryException 后大约 5 分钟就达到了限制。
我已经“完成了我的作业”(希望足够好:D)并且知道在 block 结束后,该 block 内的变量不会被释放。
最终,我需要一种方法来自动释放每个 block 之后使用的变量的内存,以阻止 OutOfMemoryException 发生。
P.S.:我意识到这个话题有很多困惑,所以如果我的问题有错误,请随时纠正我。但最重要的是,我想解决这个异常。
编辑
好吧,发生了一些奇怪的事情。我将整个项目从我的桌面(它不起作用)复制到我的笔记本电脑。显然,它在我的笔记本电脑上运行得很好!内存仅增加最多 500 KBps,并在 1 秒后自动释放。我不知道为什么,这是完全相同的项目,没有更改代码。
有人知道为什么会发生这种情况吗?
最佳答案
在 using statement 中使用这些变量并调用GC.Collect()完成后
关于C# - 在 block 末尾自动释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13450572/