CA2004 : Supprimez les appels à GC.KeepAlive
TypeName |
RemoveCallsToGCKeepAlive |
CheckId |
CA2004 |
Catégorie |
Microsoft.Reliability |
Modification avec rupture |
Modification sans rupture |
Cause
Les classes utilisent SafeHandle, mais contiennent toujours des appels à GC.KeepAlive.
Description de la règle
Si vous envisagez d'utiliser SafeHandle, supprimez tous les appels à GC.KeepAlive (objet). Dans ce cas, les classes ne devraient pas avoir besoin d'appeler GC.KeepAlive, si elles ne disposent pas d'un finaliseur, mais comptent sur SafeHandle pour finaliser le handle du système d'exploitation. Bien que le coût lié à l'abandon d'un appel à GC.KeepAlive puisse être négligeable en termes de performances, la perception selon laquelle un appel à GC.KeepAlive est nécessaire ou suffisant pour résoudre un problème de durée de vie qui ne peut plus exister rend le code plus difficile à gérer.
Comment corriger les violations
Supprimez les appels à GC.KeepAlive.
Quand supprimer les avertissements
Vous pouvez supprimer cet avertissement uniquement si l'utilisation de SafeHandle dans votre classe n'est pas correcte, du point de vue technique.