CA2004: remover chamadas para GC.KeepAlive
TypeName |
RemoveCallsToGCKeepAlive |
CheckId |
CA2004 |
Categoria |
Microsoft.Reliability |
Alteração Significativa |
Sem quebra |
Causa
O uso SafeHandle das classes mas ainda contém as chamadas para GC.KeepAlive.
Descrição da Regra
Se você estiver convertendo a SafeHandle uso, remova todas as chamadas a GC.KeepAlive (objeto).Nesse caso, as classes não devem ter que chamar GC.KeepAlive,supondo que não têm um finalizador mas dependem de SafeHandle para concluir a alça do sistema operacional para eles. Embora o custo de sair em uma chamada para GC.KeepAlive possam ser muito importantes como medido pelo desempenho, a percepção que uma chamada a GC.KeepAlive é necessário ou suficiente para resolver um problema de tempo de vida que pode não existir faz o código mais difícil manter.
Como Corrigir Violações
Remover chamadas a GC.KeepAlive.
Quando Suprimir Alertas
Você pode suprimir o aviso somente se o não estiver correto tecnicamente converter a SafeHandle uso em sua classe.