Partilhar via


Remova chamadas para GC.KeepAlive

TypeName

RemoveCallsToGCKeepAlive

CheckId

CA2004

Category (Categoria)

Microsoft.confiabilidade

Quebrando alterar

Não separável

Causa

Classes usar SafeHandle mas ainda contêm chamadas para GC.KeepAlive.

Descrição da regra

Se converter em SafeHandle uso, remova todas as chamadas para GC.KeepAlive (objeto). Nesse caso, classes não é necessário chamar GC.KeepAlive,Supondo que eles não conseguirem tiver um finalizador mas dependem SafeHandle Para finalizar o identificador do sistema operacional para eles. Embora o custo de deixar em uma telefonar para GC.KeepAlive pode ser desprezível em termos de desempenho, a percepção de que uma telefonar para GC.KeepAlive é necessário ou suficientes para solucionar um problema que talvez 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

É possível suprimir esse aviso somente se não for tecnicamente correta converter em SafeHandle uso na sua classe.