Compartir a través de


Quite las llamadas a GC.KeepAlive

Actualización: noviembre 2007

     TypeName

RemoveCallsToGCKeepAlive

Identificador de comprobación

CA2004

Category

Microsoft.Reliability

Cambio problemático

No problemático

Motivo

Las clases utilizan SafeHandle pero aún contienen llamadas a GC.KeepAlive.

Descripción de la regla

Al efectuar la conversión para utilizar SafeHandle, quite todas las llamadas a GC.KeepAlive (objeto). En este caso, las clases no deberían tener que llamar a GC.KeepAlive,puesto que se supone que no tienen un finalizador sino que dependen de SafeHandle para que se encargue de finalizar el indicador OS. Aunque el costo de dejar una llamada a GC.KeepAlive puede ser mínimo en términos de rendimiento, la percepción de que una llamada a GC.KeepAlive resulta necesaria o suficiente para solucionar un problema de duración que ya no existe hace que el código sea más difícil de mantener.

Cómo corregir infracciones

Quite las llamadas a GC.KeepAlive.

Cuándo suprimir advertencias

Sólo puede suprimir esta advertencia si no es técnicamente correcto realizar la conversión para el uso de SafeHandle en la clase.