CA2004: Remove calls to GC.KeepAlive
Visual Studio 2012
|
TypeName |
RemoveCallsToGCKeepAlive |
|
CheckId |
CA2004 |
|
Category |
Microsoft.Reliability |
|
Breaking Change |
Non-breaking |
If you are converting to SafeHandle usage, remove all calls to GC.KeepAlive (object). In this case, classes should not have to call GC.KeepAlive, assuming they do not have a finalizer but rely on SafeHandle to complete the OS handle for them. Although the cost of leaving in a call to GC.KeepAlive might be negligible as measured by performance, the perception that a call to GC.KeepAlive is either necessary or sufficient to solve a lifetime issue that might no longer exist makes the code harder to maintain.