在c#中删除非常大的对象
发布时间:2020-12-15 19:44:25 所属栏目:百科 来源:网络整理
导读:直升机. 我是c#的新手,我用GC删除了我的代码无法访问的对象.新问题是我正在使用一些大的(7-40 MB)对象,好处是我不需要一次全部,所以是否有任何可行的方法来删除对象? 我试过这个: - create big object X- use big object X X = null; /*so I don't have an
直升机.
我是c#的新手,我用GC删除了我的代码无法访问的对象.新问题是我正在使用一些大的(7-40 MB)对象,好处是我不需要一次全部,所以是否有任何可行的方法来删除对象? 我试过这个: - create big object X - use big object X X = null; /*so I don't have any referance to it any more*/ GC.Collect(); GC.WaitForPendingFinalizers(); - create next big object ....` 这是否保证在GC.WaitForPendingFinalizers()之后删除大对象;退出? 我知道我应该克服我的设计让对象变得更加强大,但是相信我,我试过它,这使逻辑变得复杂.如果没有其他方法我会这样做,代码会增加2或3倍. 谢谢! 解决方法
你不需要这样做.避免手动调用GC.Collect.因此,如果您不需要同时使用这些对象,只需将它们排除在范围之外并构造新对象.垃圾收集器足够智能,必要时会清理它们.例如,如果你有足够的空闲内存,它可能不会打扰,但如果内存开始运行低,它将收集它们.它经过了高度优化.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |