Size: a a a

2020 September 20

rr

razumovsky r in CODE BLOG / C#
опять же, вопрос не в том нужен или нет, вопрос почему ты вызываешь метод Dispose() (на русский Вынеести мусор) и говоришь мусорщику: не трогай этот пакет
источник

rr

razumovsky r in CODE BLOG / C#
ну всмысле вообще
источник

rr

razumovsky r in CODE BLOG / C#
Egene Avdeev
Зачем эти сложности сейчас
затем что нужно четко понимать этот механизм
источник

EA

Egene Avdeev in CODE BLOG / C#
razumovsky r
опять же, вопрос не в том нужен или нет, вопрос почему ты вызываешь метод Dispose() (на русский Вынеести мусор) и говоришь мусорщику: не трогай этот пакет
Странная ассоциация...
источник

rr

razumovsky r in CODE BLOG / C#
могу ошибаться (вероятнее всего и ошибаюсь), расскажи как правильно
источник

EA

Egene Avdeev in CODE BLOG / C#
razumovsky r
опять же, вопрос не в том нужен или нет, вопрос почему ты вызываешь метод Dispose() (на русский Вынеести мусор) и говоришь мусорщику: не трогай этот пакет
Скорее вот как, ты в мастерской делаешь какую-то штуку, мусоришь, щепки,  стружка, отпиленные доски.
Ты что-то сделал, и тебе больше мастерская не нужна, ты вызываешь   Dispose и условно убираешь инструмент на место (циркулярную пилу из розетки вытыкнул, Шурик с зарядки убрал.)
Потом закрываешь мастерскую, уходишь домой.  Всё,  ты сделал что хотел. От тебя более ничего не нужно

Финализатор (чел который уберёт за тобой мусор) уберёт стружку, соберёт в пакеты и унесёт на свалку
источник

rr

razumovsky r in CODE BLOG / C#
инструмент то он тоже уберет на свалку ?
источник

EA

Egene Avdeev in CODE BLOG / C#
razumovsky r
инструмент то он тоже уберет на свалку ?
В данном контексте скорее всего да.
источник

rr

razumovsky r in CODE BLOG / C#
вот тут и вопрос: смысл с диспозейбл паттерна тогда (для управляемого кода)?
источник

EA

Egene Avdeev in CODE BLOG / C#
razumovsky r
вот тут и вопрос: смысл с диспозейбл паттерна тогда (для управляемого кода)?
Он применим не всегда, и часто не нужен. Если классы простые, то всё автоматом уберется, когда придёт время.

Для сложных классов другое дело, но опять же, не для всех.
Поищу пример при котором этот паттерн нужен
источник

rr

razumovsky r in CODE BLOG / C#
меня более интересует вопрос: вызывал ты диспоуз, и обджект все же живет ))
источник

rr

razumovsky r in CODE BLOG / C#
вот тут нету понимания
источник

rr

razumovsky r in CODE BLOG / C#
это якобы с целью производительности так ?
источник

rr

razumovsky r in CODE BLOG / C#
вынесу не отдельно, а тогда, когда и все остальное ?
источник

EA

Egene Avdeev in CODE BLOG / C#
razumovsky r
вынесу не отдельно, а тогда, когда и все остальное ?
Ну условно да. Вызвал диспоз а обьект из памяти уберется позднее, или в ближайшее время, или потом. Памяти хватает, поэтому может полежать
источник

EA

Egene Avdeev in CODE BLOG / C#
После диспоза сам объект тебе не нужен,  подразумевается что о нем нужно забыть
источник

rr

razumovsky r in CODE BLOG / C#
Egene Avdeev
Ну условно да. Вызвал диспоз а обьект из памяти уберется позднее, или в ближайшее время, или потом. Памяти хватает, поэтому может полежать
в тоже время, хотя объект и в памяти, доступ я к нему более не имею ?
источник

EA

Egene Avdeev in CODE BLOG / C#
razumovsky r
в тоже время, хотя объект и в памяти, доступ я к нему более не имею ?
Вызвал диспоз, обьект почистил что-то внутри, объект есть, можно обратиться, но не нужно
источник

EA

Egene Avdeev in CODE BLOG / C#
Если ты у стрима вызвал диспоз, то внутри произошёл close
источник

EA

Egene Avdeev in CODE BLOG / C#
И ты обращаешься к условно сломанному объекту, зачем?
Вызвал диспоз и больше не трогать

Часто с таймером так поступают

timer.Dispose();
timer=null;
источник