Нет.Документация для System.GC.KeepAlive()
говорит, что она гарантирует, что аргумент жив до вплоть до вызова KeepAlive()
.Это просто фиктивная функция, которую GC обещает не проверять на фактическое использование аргумента.
Если вы хотите, чтобы объект оставался в живых, убедитесь, что на него всегда есть ссылка.Этого должно быть достаточно, чтобы сохранить его в поле private static
.Если у вас есть произвольное их количество, сохраните его в поле List
в поле.