CA2004: Quitar las llamadas a GC.KeepAlive
Elemento | Valor |
---|---|
RuleId | CA2004 |
Category | Microsoft.Reliability |
Cambio importante | Poco problemático |
Causa
Las clases usan SafeHandle
pero todavía incluyen llamadas a GC.KeepAlive
.
Descripción de la regla
Si va a realizar la conversión al uso SafeHandle
, quite todas las llamadas a GC.KeepAlive
(objeto). En este caso, las clases no deberían tener que llamar a GC.KeepAlive
, si se supone que no tienen un finalizador, pero se basan en SafeHandle
a fin de completar el identificador del sistema operativo para ellas. Aunque el costo de dejar una llamada a GC.KeepAlive
podría ser insignificante según el rendimiento, la percepción de que una llamada a GC.KeepAlive
es necesaria o suficiente para resolver 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 las advertencias
Solo puede suprimir esta advertencia si no es técnicamente correcta para convertir al uso SafeHandle
de la clase.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de