相关疑难解决方法(0)

使用GC.Collect()是否正确; GC.WaitForPendingFinalizers();?

我已经开始检查项目中的一些代码,发现这样的事情:

GC.Collect();
GC.WaitForPendingFinalizers();
Run Code Online (Sandbox Code Playgroud)

这些线通常出现在被设想在提高效率的基础上破坏对象的方法上.我发表了这样的言论:

  1. 在销毁每个对象时显式调用垃圾收集会降低性能,因为如果CLR性能绝对必要,则不考虑它.
  2. 按该顺序调用这些指令会导致每个对象仅在最终确定其他对象时被销毁.因此,一个可以独立销毁的对象必须等待其他对象的破坏,而没有必要.
  3. 它可以产生死锁(参见:这个问题)

1,2和3都是真的吗?你能给出一些支持你答案的参考吗?

虽然我几乎可以肯定我的言论,但我需要明确我的论点,以便向我的团队解释为什么这是一个问题.这就是我要求确认和参考的原因.

.net c# garbage-collection

31
推荐指数
5
解决办法
3万
查看次数

标签 统计

.net ×1

c# ×1

garbage-collection ×1