Size: a a a

2021 February 11

SB

S B in pro.net
Ayrat Hudaygulov
Илья держит марку
Илья похоже и глотает марки иногда
источник

DP

Denis Petukhov in pro.net
Карочи не юзайте финалайзер. "Она тебя сожрет!!1"
источник

AH

Ayrat Hudaygulov in pro.net
Denis Petukhov
Карочи не юзайте финалайзер. "Она тебя сожрет!!1"
я выше кидал статью, там вообще все что надо знать про диспоуз и финализатор в дотнете написано
источник

AH

Ayrat Hudaygulov in pro.net
как правильно делать
источник

DP

Denis Petukhov in pro.net
Я закинул себе почитать на потом
источник

DP

Denis Petukhov in pro.net
Но там пиздец канеш стена текста
источник

DP

Denis Petukhov in pro.net
Видимо это очень легко сделать
источник

AH

Ayrat Hudaygulov in pro.net
Denis Petukhov
Видимо это очень легко сделать
да, легко. Там стена текста для анменедж ресурсов
источник

DP

Denis Petukhov in pro.net
Ну я про анменедж и говорю
источник

DP

Denis Petukhov in pro.net
В обычном там и не нужен финализатор по идее
источник

AH

Ayrat Hudaygulov in pro.net
с анмеджд ад, а с менедж похуй, диспоуз позвал БЕЗ ВСЯКИХ СУПРЕС ФИНАЛИЗЕ и ок
источник

AH

Ayrat Hudaygulov in pro.net
там подробно описано зачем финализатор когда и почему. Написано как правильно написать. почему МС дало такой патерн, почему его не надо использовать
источник

AH

Ayrat Hudaygulov in pro.net
для менедж ресурсов диспоуз должен быть лиминтарным - вызвал диспоузы дочерних объектов и все.
никаких проверок, никакой ебли
источник

DP

Denis Petukhov in pro.net
Ayrat Hudaygulov
для менедж ресурсов диспоуз должен быть лиминтарным - вызвал диспоузы дочерних объектов и все.
никаких проверок, никакой ебли
Но если у дочерних анменеджд без финалайзера ты огребаешь)
источник

DP

Denis Petukhov in pro.net
И ты получается дожен по всей цепочке проверить)
источник

AH

Ayrat Hudaygulov in pro.net
Denis Petukhov
Но если у дочерних анменеджд без финалайзера ты огребаешь)
об этом в статье тоже написано. Короче, ты почитай
источник

AH

Ayrat Hudaygulov in pro.net
лучше рихтера!
источник

AH

Ayrat Hudaygulov in pro.net
Я еще раз скину чтобы точно никто не пропустил
https://www.codeproject.com/Articles/29534/IDisposable-What-Your-Mother-Never-Told-You-About
источник

MS

Michael Snytko in pro.net
а можно TLDR
источник

AH

Ayrat Hudaygulov in pro.net
Michael Snytko
а можно TLDR
The Disposable Design Principle is built on these ideas:

Level 0 types directly wrap unmanaged resources. These types are generally sealed. only deal with unmanaged resources.
Level 1 types are types that derive from Level 1 types and/or contain field members that are Level 0 or Level 1 types. only deal with managed resources (defined by a base type and/or in fields).

Implementing IDisposable on Level 1 types is rather simple: just implement IDisposable.Dispose as calling Dispose on any IDisposable field, and then, if this type is derived from an IDisposable type, call base.Dispose. This is not the place for general shutdown logic. Note the following for this simple implementation:

Dispose is safe to be called multiple times because it is safe to call IDisposable.Dispose multiple times, and that's all it does.
Level 1 type should not have finalizers; they wouldn't be able to do anything anyway, since managed code cannot be accessed.
It is not necessary to call GC.KeepAlive(this) at the end of Dispose. Even though it is possible for the garbage collector to collect this object while Dispose is still running, this is not dangerous since all the resources being disposed are managed, and neither this type nor any derived types have finalizers.
Calling GC.SuppressFinalize(this) is likewise unnecessary because neither this type nor any derived types have finalizers.
источник