我可以在 C# 中强制内存清理吗?

2023-11-26

我听说 C# 不会立即释放内存,即使您已经使用完它。我可以强制 C# 释放内存吗?

我正在使用 Visual Studio 2008 Express。这有关系吗?

附:我对 C# 及其管理内存的方式没有任何问题。我只是好奇。


Jim,

你没听错。它通过称为垃圾收集器的机制定期清理内存。您可以通过如下调用“强制”垃圾收集。

GC.Collect();

我强烈推荐你阅读这篇关于垃圾收集的 MSDN 文章.

编辑1:“力”用引号引起来。更清楚地说,就像另一张海报一样,这实际上只是表明了这一点。你不可能真正让它在特定的时间点发生。因此,链接到有关 .Net 中的垃圾收集的文章

编辑2:我意识到这里的每个人都只提供了对你的主要问题的直接答案。至于你的第二个问题。使用 Visual Studio 2008 Express 仍将使用 .net 框架,该框架执行垃圾收集。因此,如果您升级到专业版,您仍然会遇到相同的内存管理功能/限制。

Edit 3: 这篇维基百科关于终结器的文章给出了一些关于在终结器中适合做什么的很好的指示。基本上,如果您正在创建一个可以访问关键资源的对象,或者您正在使用这样的对象,请实现 IDispose 和/或利用using陈述。即使抛出异常,使用也会自动调用 Dispose 方法。这并不意味着您不需要给出运行终结器提示......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在 C# 中强制内存清理吗? 的相关文章

随机推荐

  • 检测 Android 上的键盘 IME 语言

    如何检测在 EditText 中输入的内容使用哪种语言 我知道 API 13 有getCurrentInputMethodSubtype 但是旧版本的替代品是什么 空无一人 我什至不指望上述内容适用于所有键盘 我写了一个流行的键盘 但不知道
  • Codeigniter - 使用两个不同数据库的最佳方法

    有人知道在我的应用程序中使用两个不同数据库的最佳实践吗 我需要将数据存储在位于不同位置的两个数据库中 主机 用户名 密码 所有这些都会改变 我计划像往常一样创建模型 并在构造中设置数据库主机 名称 通行证等 我不确定你是否称这是 最好 的方
  • 从函数返回的记录具有串联的列

    我有一个表 用于存储帐户随时间的变化 我需要将其与其他两个表连接起来 以创建特定日期的一些记录 如果这些记录尚不存在 为了让事情变得更简单 我希望 我将返回正确历史数据的查询封装到一个接受帐户 ID 和日期的函数中 如果我执行 Select
  • 使用 GSON 反序列化通用类型

    我在 Android 应用程序 使用 Gson 库 中实现 Json 反序列化时遇到一些问题 我上过这样的课 public class MyJson
  • 二维 np.digitize

    我有二维数据 并且有一堆用 生成的二维箱scipy stats binned statistic 2d 对于每个数据点 我想要它占用的 bin 的索引 这正是np digitize是用于 但据我所知 它只处理一维数据 Thisstackex
  • BeautifulSoup,但是对于CSS?

    BeautifulSoup 解析 HTML 并提供各种在 HTML 中操作和搜索的方法 CSS 有类似的东西吗 具体来说 我想知道给定的 HTML 文本是否呈现为bold 要么它有一个祖先 strong or the strong
  • VHDL:使用输入端口是不好的做法吗?

    我有一个程序 我按照以下方式使用 inout 端口 port inout unsigned 9 downto 0 if port gt 10 then port lt port 1 end if 我正在使用 inout 端口 这样我就可以读
  • 如何按不同字段分组

    我想找到所有名为 Hans 的用户 并通过对他们进行分组来汇总他们的 年龄 和 孩子 数量 假设我的数据库 用户 中有以下用户 id 01 user Hans age 50 childs 2 id 02 user Hans age 40 c
  • 如何使用 javascript/jQuery/ajax 打印不同的页面?

    使用以下代码 它显示打印对话框并成功打印页面 但是单击同一按钮后如何打印不同的页面 不同的页面名称是 letterprint php div class below movie left My printing contents div
  • -event- 只能出现在 += 或 -= 的左侧

    我有一个循环事件 我试图防止同一方法多次添加到一个事件中 我已经实施了add and remove访问器 但是 我收到一条错误消息 ItemsProcessed can only appear on the left hand side o
  • 如何配置与 Spring 集成的嵌入式 Tomcat 来侦听除 localhost 之外的 IP 地址请求?

    我正在尝试运行春季指南中的示例 构建 RESTful Web 服务 如果我打开的话效果很好本地主机 8080 问候语 但如果我打开其中一个 它就无法建立连接192 168 1 111 8080 问候语 or 140 112 134 22 8
  • PHP/MySQL/PDO 绑定空参数不起作用

    我在以下代码中绑定空参数时遇到问题 nullVariable NULL sql new PDO mysql host Server User Password sql gt setAttribute PDO ATTR ERRMODE PDO
  • Android 通过对话框共享

    我见过 TFLN 等应用程序中的 共享方式 对话框 昨晚的短信 看起来像这样 共享对话框 http garr me wp content uploads 2009 12 sharevia jpg 我正在寻找分享文字 有人能指出我正确的方向吗
  • 为 Jest 的每个测试文件指定 window.location

    我正在升级到 Jest 22 但我遇到了一些有关模拟的问题window location 以前这个方法可以用 但是升级后就不行了 Object defineProperty window location href writable tru
  • 获得发光效果的最佳方式 Windows Phone 7

    我正在摆弄 Windows Phone 7 sdk 并试图让屏幕看起来像老式数字显示屏 现在我正在尝试弄清楚如何使文本像那些很酷的数字时钟之一一样 发光 我假设您会考虑使用着色器来实现这种目的 但似乎在 Windows Phone 7 操作
  • 如何在 C 中声明字符串 [重复]

    这个问题在这里已经有答案了 谁能解释一下这些代码行之间有什么区别 char p String char p2 String char p3 7 String 在什么情况下我应该使用上面的每一个 这个链接应该可以满足你的好奇心 基本上 忘记你
  • 对字符串日期数组进行排序

    我想按升序对数组进行排序 日期为字符串格式 09 06 2015 25 06 2015 22 06 2015 25 07 2015 18 05 2015 甚至需要一个函数来检查这些日期是否是连续形式 eg Valid 09 06 2015
  • 是否可以创建一个计算指令数量的 Monad?

    考虑到 monad 我想到了用 monad 来打破冯 诺依曼架构的方法 冯诺依曼架构使用一组指令 称为程序 来更改内存中的数据 并且程序的每条指令的执行都会更新程序计数器以了解下一个要执行的指令 如果我们将冯 诺依曼架构视为一个 monad
  • “sizeof”如何确定数组的大小?

    C 如何在运行时找到数组的大小 有关数组大小或边界的信息存储在哪里 sizeof array 完全由C编译器实现 当程序被链接时 看起来像sizeof 对你的呼叫已转换为常量 示例 当您编译此 C 代码时 include
  • 我可以在 C# 中强制内存清理吗?

    我听说 C 不会立即释放内存 即使您已经使用完它 我可以强制 C 释放内存吗 我正在使用 Visual Studio 2008 Express 这有关系吗 附 我对 C 及其管理内存的方式没有任何问题 我只是好奇 Jim 你没听错 它通过称