Удалите вызов GC.KeepAlive
Обновлен: Ноябрь 2007
TypeName |
RemoveCallsToGCKeepAlive |
CheckId |
CA2004 |
Категория |
Microsoft.Reliability |
Критическое изменение |
Не критическое |
Причина
Классы используют класс SafeHandle, однако по-прежнему содержат вызовы метода GC.KeepAlive.
Описание правила
При переходе к использованию класса SafeHandle необходимо удалить все вызовы метода GC.KeepAlive (объект). В этом случае классам не требуется вызывать метод GC.KeepAlive,поскольку для завершения дескриптора ОС они используют не метод завершения, а класс SafeHandle. Хотя затраты на оставшиеся вызовы метода GC.KeepAlive почти не влияют на производительность, однако идея того, что вызов метода GC.KeepAlive является необходимым или достаточным для устранения проблемы времени существования, которая больше не существует, приводит к усложнению поддержки кода.
Предотвращение нарушений
Удалите вызовы метода GC.KeepAlive.
Отключение предупреждений
Это предупреждение можно отключить только в том случае, если для данного класса переход к использованию SafeHandle технически не осуществим.