CA2004: удалите вызовы GC.KeepAlive
Товар | Значение |
---|---|
Идентификатор правила | CA2004 |
Категория | Microsoft.Reliability |
Критическое изменение | Не критическое |
Причина
Классы используются SafeHandle
, но по-прежнему содержат вызовы GC.KeepAlive
.
Описание правила
При преобразовании в SafeHandle
использование удалите все вызовы GC.KeepAlive
(объект). В этом случае классы не должны вызывать GC.KeepAlive
,если у них нет средства завершения, но полагаться SafeHandle
на завершение дескриптора ОС для них. Хотя затраты на выход из вызова могут быть незначительными, как измеряется производительностью, восприятие того, что вызов GC.KeepAlive
GC.KeepAlive
либо необходим, либо достаточно для решения проблемы времени существования, которая больше не может существовать, делает код труднее поддерживать.
Устранение нарушений
Удаление вызовов GC.KeepAlive
.
Когда лучше отключить предупреждения
Это предупреждение можно отключить только в том случае, если оно не является технически правильным для преобразования в SafeHandle
использование в классе.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по