CA2004: удалите вызовы GC.KeepAlive

Товар Значение
Идентификатор правила CA2004
Категория Microsoft.Reliability
Критическое изменение Не критическое

Причина

Классы используются SafeHandle , но по-прежнему содержат вызовы GC.KeepAlive.

Описание правила

При преобразовании в SafeHandle использование удалите все вызовы GC.KeepAlive (объект). В этом случае классы не должны вызывать GC.KeepAlive,если у них нет средства завершения, но полагаться SafeHandle на завершение дескриптора ОС для них. Хотя затраты на выход из вызова могут быть незначительными, как измеряется производительностью, восприятие того, что вызов GC.KeepAliveGC.KeepAlive либо необходим, либо достаточно для решения проблемы времени существования, которая больше не может существовать, делает код труднее поддерживать.

Устранение нарушений

Удаление вызовов GC.KeepAlive.

Когда лучше отключить предупреждения

Это предупреждение можно отключить только в том случае, если оно не является технически правильным для преобразования в SafeHandle использование в классе.