Compartilhar via


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.