如果我有一个对象存储在内存中,然后我离开我的应用程序一个小时,当我回来时该对象是否仍然存在?
换句话说,.NET 垃圾收集器是否会因为我的对象有一段时间没有使用而将其丢弃?
最佳答案
垃圾收集器只收集应用程序中不再引用的对象。垃圾收集器永远不会收集正在使用的任何对象。
垃圾收集器对“被使用”的定义是基于根的。如果 AppDomain 中的其他对象实例引用一个对象实例,则该对象实例具有根。只要托管您的应用程序的 AppDomain 未卸载,内存中的任何和所有对象实例都将保留在内存中,只要它们在应用程序中保留根即可。
关于.net - 我的对象总是 "be there"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1828906/