CA2004: Remova as chamadas para GC.Manutenção de atividade
TypeName |
RemoveCallsToGCKeepAlive |
CheckId |
CA2004 |
<strong>Categoria</strong> |
Microsoft.Reliability |
Alteração significativa |
Não-separável |
Causa
Classes usam SafeHandle , mas ainda contêm chamadas para GC.KeepAlive.
Descrição da regra
Se você estiver convertendo para SafeHandle uso, remova todas as chamadas para GC.KeepAlive (objeto). Nesse caso, não devem ter classes chamar GC.KeepAlive, supondo que não possuem um finalizador, mas dependem de SafeHandle para concluir o manipulador do sistema operacional para eles. Embora o custo de deixar em uma chamada para GC.KeepAlive pode ser desprezível conforme medido pelo desempenho, a percepção de que uma chamada para GC.KeepAlive é necessária ou suficientes para resolver um problema que não exista mais torna mais difícil de manter o código de tempo de vida.
Como corrigir violações
Remova chamadas para GC.KeepAlive.
Quando suprimir avisos
Você pode suprimir este aviso somente se não for tecnicamente correta converter em SafeHandle uso da sua turma.