CA2004 : Supprimez les appels à GC.KeepAlive
Élément | Valeur |
---|---|
ID de la règle | CA2004 |
Category | Microsoft.Reliability |
Modification avec rupture | Sans rupture |
Cause
Les classes utilisent SafeHandle
mais contiennent quand même des appels à GC.KeepAlive
.
Description de la règle
Si vous effectuez une conversion vers l’utilisation de SafeHandle
, supprimez tous les appels à GC.KeepAlive
(objet). Dans ce cas, les classes ne doivent pas avoir à appeler GC.KeepAlive
, en supposant qu’elles n’ont pas de finaliseur, mais qu’elles s’appuient sur SafeHandle
pour terminer le handle de système d’exploitation pour elles. Bien que le coût d’une sortie dans un appel à GC.KeepAlive
puisse être négligeable comme mesuré par les performances, la perception qu’un appel à GC.KeepAlive
est nécessaire ou suffisant pour résoudre un problème de durée de vie qui n’existe plus rend la maintenance du code plus difficile.
Comment corriger les violations
Supprimez les appels à GC.KeepAlive
.
Quand supprimer les avertissements
Vous pouvez supprimer cet avertissement uniquement s’il n’est pas techniquement correct d’effectuer une conversion vers l’utilisation de SafeHandle
dans votre classe.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour