Partager via


Supprimer les appels à GC.KeepAlive

Mise à jour : novembre 2007

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 requièrent pas d'appels à GC.KeepAlive,en supposant qu'elles ne disposent pas d'un finaliseur, mais dépendent de SafeHandle pour finaliser le handle du système d'exploitation à leur place. 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.