引用存储在Session变量中的对象的变量是否由GC收集?
|
我对垃圾回收的工作原理和导致内存泄漏的原因不是很熟悉。但是我正要对此加以关注,并希望编写更有效的代码。因此,我正在处理的项目是Asp.Net Web应用程序,当Session在global.asax中启动时创建了一个自定义DataCriteria实例,然后将其存储在Session变量中。此自定义DataCriteria是我们用来与数据库进行CRUD方法通信的工具。
第一个问题是,假设我们有一个Person类,并且在此Person类中有一个DataCriteria字段,该字段设置为DataCriteria的Session变量实例。由于Person实例拥有对DataCriteria实例的引用,该引用在Session结束之前不会被废弃,因此该Person实例将能够被收集。否则,直到该会话结束之前,不会处理Person的每个实例。
第二个问题更笼统,但同样。基本上,我想知道在GC中是否可以在引用DataCriteria的Session变量实例的方法中声明的变量进行收集?还是会一直保留到会议结束?
我感谢您在这里给我的所有建议。而且,如果您了解用于理解垃圾回收并避免内存泄漏的任何好读物,我也很想听听它们。
没有找到相关结果
已邀请:
2 个回复
贸会
夏瓤跋棘