C# - 在 block 末尾自动释放内存

标签 c# memory out-of-memory

所以我有一个程序可以每秒增加 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/

相关文章:

linux - RES != CODE + DATA 在 top 命令的输出信息中,为什么?

c++ - 大数据的内存组织

java - 在 h2o 中加载大于内存大小的数据

c# - 内存不足 Image.FromFile

c# - 如何连接MySQL数据库?

c# - Asp.net Core 中的 HttpContext 异步安全吗?

c# - Entity Framework 隐式类型转换

c# - 循环开始到结束时间跨度过夜

Ubuntu : how to catch out of memory exceptions? 上的 python

java - Java中字符串的不可变性会导致内存不足吗