GC.KeepAlive()有什么坏处,FxCop将此标记为违规?
答案 0 :(得分:4)
可能因为调用它被认为是不好的做法,就像调用GC.Collect
通常是一个坏主意 - 它通常会对收集器产生负面影响和/或可能表明存在设计缺陷在你的最后。
但是,您应该能够重新配置FxCop,以便在需要调用时不考虑对方法的调用。毕竟,有充分的理由这样做。
答案 1 :(得分:3)
并不是说GC.KeepAlive特别糟糕,而是如果你转换为SafeHandle用法没有必要,而你真的,真的应该转换为SafeHandle用法。如果您不确定原因,可以考虑查看http://blogs.msdn.com/b/bclteam/archive/2005/03/16/396900.aspx和http://blogs.msdn.com/b/bclteam/archive/2006/06/23/644343.aspx。