加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在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.因此,如果您不需要同时使用这些对象,只需将它们排除在范围之外并构造新对象.垃圾收集器足够智能,必要时会清理它们.例如,如果你有足够的空闲内存,它可能不会打扰,但如果内存开始运行低,它将收集它们.它经过了高度优化.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读