我可以在 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# 中强制内存清理吗? 的相关文章

  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当

随机推荐

  • 检测 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 你没听错 它通过称