为什么FxCop将GC.KeepAlive()标记为违规?

时间:2011-01-11 19:45:14

标签: c# .net garbage-collection fxcop

GC.KeepAlive()有什么坏处,FxCop将此标记为违规?

2 个答案:

答案 0 :(得分:4)

可能因为调用它被认为是不好的做法,就像调用GC.Collect通常是一个坏主意 - 它通常会对收集器产生负面影响和/或可能表明存在设计缺陷在你的最后。

但是,您应该能够重新配置FxCop,以便在需要调用时不考虑对方法的调用。毕竟,有充分的理由这样做。

答案 1 :(得分:3)

并不是说GC.KeepAlive特别糟糕,而是如果你转换为SafeHandle用法没有必要,而你真的,真的应该转换为SafeHandle用法。如果您不确定原因,可以考虑查看http://blogs.msdn.com/b/bclteam/archive/2005/03/16/396900.aspxhttp://blogs.msdn.com/b/bclteam/archive/2006/06/23/644343.aspx