реализовал IDisposable где возвращаю арендованную область, но вот думаю, нужно ли делать финалайзер ~MyObject() => Dispose(disposing: false) ? 🤔🤔🤔
Dispose(disposing: false) является антипатерном. Вообще добавлять диспоз в финализатор не возбраняется
>Является ли SharedArrayPool<T> не управляемым ресурсом? Если ты про ArrayPool<T>.Shared - то нет. Это вообще синглтон. >Суть в том, что я реализовал IDisposable где возвращаю арендованную область, но вот думаю, нужно ли делать финалайзер ~MyObject() => Dispose(disposing: false) ? Так в твоём финалайзере то будет вызов Dispose, который у тебя возвращает арендованную область памяти. Короче именно твой объект является тут Dispossible. И работать ты должен с ним. Финалайзер в данном случае нужен тебе тут только для того, что вдруг в каком-то случае ты забудешь его диспознуть и его соберет сборщик мусора и тогда твоя шара освободится.
Обсуждают сегодня