У меня есть объект, который стоит создать дорого, который использует некоторые неуправляемые ресурсы, которые должны быть явно освобождены при выполнении с помощью IDisposable (). Я хотел бы, например, кэш этих дорогих ресурсов, чтобы минимизировать затраты на создание, но у меня возникли проблемы, зная, как бороться с утилизацией.
Если методы, использующие объекты, ответственны за удаление, я в конечном итоге получаю удаленные экземпляры в кэше, которые затем должны быть воссозданы, побеждая точку кэша. Если я не избавляюсь от объектов в методах, которые их используют, они никогда не удаляются. Я думал, что смогу избавиться от них, когда они будут извлечены из кэша, но тогда я мог бы в конечном итоге избавиться от экземпляра, который все еще используется методом.
Допустимо ли просто выпустить их из области видимости и собрать сборщиком мусора и освободить ресурсы в этот момент? Это кажется неправильным и против идеи, что они одноразовые ...