【发布时间】:2010-12-13 21:05:40
【问题描述】:
我正在从《Professional C#》一书中学习 C# 中的内存管理
垃圾收集器的存在 意味着你通常不会担心 关于不再需要的物品; 您将简单地允许所有引用 那些对象超出范围 并允许垃圾收集器 根据需要释放内存。然而 垃圾收集器不知道如何 释放非托管资源(例如文件 句柄、网络连接和 数据库连接)。管理时 类封装直接或间接 对非托管资源的引用,您 需要作出特别规定 确保非托管资源 当一个实例被释放 类被垃圾收集。
定义类时,可以使用 自动释放的两种机制 非托管资源。
- 将析构函数(或终结器)声明为类的成员。
- 在您的系统中实现 System.IDisposable 接口 类。
我没明白几件事:
“非托管资源(例如文件句柄、网络连接和数据库连接)”。他们有什么大不了的?他们怎么没有管理? (或)为什么 GC 不能管理这些资源?
我们将在 a 类的 finalizer 或 Dispose() 方法中放置什么代码,该代码究竟是什么样的?使用这些资源的一些示例会很有帮助。
【问题讨论】:
-
另一个问题已结束。
-
感谢关闭其他线程。只有模组可以关闭问题吗?
-
@claws 请参阅 stackoverflow.com/faq 您需要 3000 次代表投票才能结束或打开他人的问题,需要 250 次代表才能投票结束您自己的问题。
标签: c# .net memory-management garbage-collection