.net - 我的对象总是 "be there"吗?

标签 .net garbage-collection

如果我有一个对象存储在内存中,然后我离开我的应用程序一个小时,当我回来时该对象是否仍然存在?

换句话说,.NET 垃圾收集器是否会因为我的对象有一段时间没有使用而将其丢弃?

最佳答案

垃圾收集器只收集应用程序中不再引用的对象。垃圾收集器永远不会收集正在使用的任何对象。

垃圾收集器对“被使用”的定义是基于根的。如果 AppDomain 中的其他对象实例引用一个对象实例,则该对象实例具有根。只要托管您的应用程序的 AppDomain 未卸载,内存中的任何和所有对象实例都将保留在内存中,只要它们在应用程序中保留根即可。

关于.net - 我的对象总是 "be there"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1828906/

相关文章:

java - 调整 GC 以进行大型缓存刷新

java - 组合中最终确定的输出不确定

java - 并发模式失败,而 Full GC

.net - 是否有任何工具可以简化.NET代码向Silverlight的移植?

c# - 是否需要在 CollectionChanged 事件中检查 NotifyCollectionChangedAction?

.net - 带有嵌套聚合的Elasticsearch NEST客户端

java - JVM 垃圾收集突然占用大量 CPU

.net - 为什么可空类型会有这样的行为

c# - 创建字典<string, Dictionary<T, T[]>[]>

java - 如何识别永久空间