Compartilhar via


CA2004: Remova 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 eles 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ário ou suficiente 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 na sua classe.