C# 从会话中完全删除数据集

C# 从会话中完全删除数据集,c#,asp.net,session,C#,Asp.net,Session,我必须将数据集存储到会话中,因为我有非持久性数据供特定用户创建报告。 在我的Global.asax.cs中,我将一个特定的密钥存储到缓存中。此缓存用于报表和报表数据(会话数据集)。 经过一段特定时间后,报表数据将从缓存中删除,并且我将使用session.Remove()以相同的方法从会话中删除数据集 现在我有一个问题,我不确定这是否会释放内存,因为如果我将数据集存储到会话中,我将存储引用。 但是我如何才能完全释放数据集使用的空间呢? 如果我认为一次有20个用户使用此方法,那么会有大量内存消耗…数

我必须将数据集存储到会话中,因为我有非持久性数据供特定用户创建报告。 在我的Global.asax.cs中,我将一个特定的密钥存储到缓存中。此缓存用于报表和报表数据(会话数据集)。 经过一段特定时间后,报表数据将从缓存中删除,并且我将使用session.Remove()以相同的方法从会话中删除数据集

现在我有一个问题,我不确定这是否会释放内存,因为如果我将数据集存储到会话中,我将存储引用。 但是我如何才能完全释放数据集使用的空间呢?
如果我认为一次有20个用户使用此方法,那么会有大量内存消耗…

数据集不包含非托管代码,因此不需要调用Dispose(),除非您正在做一些古怪的事情

您正在从会话字典中删除条目,而不是将值设置为null,这会产生完全不同的结果

虽然由于缺乏信息,我无法具体确认,但我确实相信你正在尽你所能,你已经无能为力了


您是否确实确认了这是一个问题,或者您是在实际操作?

数据集不包含非托管代码,因此除非您正在做一些古怪的事情,否则不需要调用Dispose()

您正在从会话字典中删除条目,而不是将值设置为null,这会产生完全不同的结果

虽然由于缺乏信息,我无法具体确认,但我确实相信你正在尽你所能,你已经无能为力了


你是否真的确认了这是一个问题,或者你是务实的吗?

会话变量是通向黑暗面的道路。会话导致愤怒。愤怒导致仇恨。仇恨导致痛苦。

会话变量是通往黑暗面的道路。会话导致愤怒。愤怒导致仇恨。仇恨导致痛苦。

问题更像是“我是不是用最好的方式做的?”,还是我遗漏了什么?也许这也超出了我的理解力。我只想完全删除使用过的数据,所以在我删除之后是否有任何数据,如果是,它是由垃圾收集器在将来删除的,还是我可以手动删除?我看不到其他方法可以这样做,GC将处理数据集分配,当你没有更多的事情可以做时。基于这一点,我想说是的,你做得最好。谢谢你的帮助!问题更像是‘我是不是用最好的方式做的?’,或者是我遗漏了什么?也许这也超出了我的理解力。我只想完全删除使用过的数据,所以在我删除之后是否有任何数据,如果是,它是由垃圾收集器在将来删除的,还是我可以手动删除?我看不到其他方法可以这样做,GC将处理数据集分配,当你没有更多的事情可以做时。基于这一点,我想说是的,你做得最好。谢谢你的帮助!