gpt4 book ai didi

c# - 显式释放内存

转载 作者:行者123 更新时间:2023-11-30 20:19:53 24 4
gpt4 key购买 nike

我知道这看起来像是重复的,但我认为这个具体案例可能有点不同。

在我的 MVC 应用程序中,我有一个 ViewModel,其中包含一个大列表,用于显示类似于 Excel 工作表的表格。每个 MyComplexClass 都包含一个 MyComplexClass 列表和一个 MyComplexColumn 列表。

这会占用大量内存,但现在我遇到了问题。我应该编写一个方法来清理我的大表,并将一组不同的数据加载到其中。我可以这样写:

    MyViewModel.Lines = new List<MyComplexClass>();
MyViewModel.LoadNewSetOfData(SetOfData);

但是,来自 C 背景,明确地失去我对旧列表的引用不是我能做的,并且每天早上继续看着镜子里的脸。

我看到了Here , Here , 和 Here ,我可以将引用设置为 null,然后调用

GC.Collect()

但我被告知我并不是真正的最佳实践,尤其是因为它可能真的会影响性能,而且因为我无法知道 GC 是否已经处理掉了这个特定的内存分配。

有什么方法可以让我调用 Free() 之类的东西并继续生活吗?

谢谢

最佳答案

别担心!试图“鼓励”垃圾收集器回收内存并不是一个好主意——让它在后台完成它的工作。

只需加载您的不同数据集。如果内存越来越低,GC 将启动以回收内存,而无需您执行任何操作,如果有足够的内存可用,那么您将能够加载新的内存集而不会受到垃圾收集的影响。

关于c# - 显式释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37812960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com