🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: nl.comp.programmeren
Article #472

Re: C# garbage collector

#472
From: Gerrit Cornelis
Date: Fri, 19 Sep 2003 13:39
53 lines
3737 bytes
<rick@nomail.net> wrote in message
news:bvulmv8hmij7ul4cf9ph8m5799mmls1b79@4ax.com...
> >> > Ik had een vraagje. In een C# project (in het compact .NET framework)
> >> > vervang ik soms een afbeelding door een andere afbeelding. Ik heb
gezien
> >> > dat sommige mensen dan eerst dit doen:
> >> >
> >> > if (image != null)
> >> > {
> >> > image.Dispose();
> >> > image = null;
> >> > }
> >> >
<knip>
 >
> >zonder veel te kennen van c# denk ik dat het sturen van de Dispose wel
nodig
> >is, of in ieder geval netter is, als je het image object niet meer gaat
> >gebruiken. Een Image object kan externe resources vasthouden en je weet
> >nooit zeker wanneer die gaan gereleased worden als je het niet expliciet
> >doet (garbage collection gebeurt wanneer de run time environment ertoe
> >beslist, niet wanneer jij het wil). ik heb er geen idee van of de garbage
> >collector op het moment van memory reclaim ook nog een dispose doet.
> >misschien wel, maar het is niet netjes van externe resources vast te
houden.
> >en voor hetzelfde geld wordt het stuk geheugen van dat object nooit
> >gereclaimed.
>
> Dat is toch precies wat ik zei ? 'Bovenstaande code is (alleen) nuttig als
> je 'image' niet langer meer gebruikt. '
>
> Bovendien ging ik daarna nog het ��n en ander wat meer toelichten,
> maar net dat stukje tekst heb je in deze reply weggeknipt (...) :
>
> 'Maar, zoals gezegd, als je 'image' niet langer meer gebruikt, dan is die
> code WEL nuttig, omdat de garbage collector dan 'ziet' dat dit object
> opgeruimd kan worden.
>
> Als je dat niet doet en 'image' is een variabele die niet meer 'out of
> scope' raakt tijdens het draaien van het programma (het is bv een
> class-variabele (member) van een class die voortdurend 'bestaat',
> dan zal 'image' geheugen blijven vasthouden omdat de garbage
> collector het object niet kan opruimen.'

Volgens mij ging de vraag over waarom je Dispose() expliciet moet sturen en
niet over het op null zetten van de variabele. De post van Pieter bevat een
veel betere uitleg dan de mijne maar komt op hetzelfde neer. en ik kan mij
natuurlijk vergissen en misschien ging de vraag over de null assignatie aan
de image variabele en dan is die inderdaad onnodig voor de garbage collector
maar wel veel netter want je hebt het Image object net onbruikbaar gemaakt.
bijgevolg maak je het beter ook onbereikbaar.

Gerrit
Technical Details
Message-ID: <3f6b0650$0$24163$ba620e4c@reader0.news.skynet.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!news.tele.dk!news.tele.dk!small.news.tele.dk!news.agarik.com!news.agarik.com!skynet.be!skynet.be!louie!tlk!not-for-mail
References: <bkecq3$11sg$1@nl-news.euro.net> <3vklmvsj3lsprdrvjrplk7rcknecl8f967@4ax.com> <3f6aedc8$0$31737$ba620e4c@reader1.news.skynet.be> <bvulmv8hmij7ul4cf9ph8m5799mmls1b79@4ax.com>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: 107324,99e0602d9fb9d25e
X-Google-Attributes: gid107324,public
X-Google-Thread: fcea4,99e0602d9fb9d25e
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-09-19 06:36:39 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!news.tele.dk!news.tele.dk!small.news.tele.dk!news.agarik.com!news.agarik.com!skynet.be!skynet.be!louie!tlk!not-for-mail
Reply-To: "Gerrit Cornelis" <gerrit_*remove*cornelis@belgacom.net>
From: "Gerrit Cornelis" <gerrit_*remove*cornelis@belgacom.net>
Newsgroups: nl.comp.programmeren,be.comp.programming
References: <bkecq3$11sg$1@nl-news.euro.net> <3vklmvsj3lsprdrvjrplk7rcknecl8f967@4ax.com> <3f6aedc8$0$31737$ba620e4c@reader1.news.skynet.be> <bvulmv8hmij7ul4cf9ph8m5799mmls1b79@4ax.com>
Subject: Re: C# garbage collector
Date: Fri, 19 Sep 2003 15:39:35 +0200
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Lines: 55
Message-ID: <3f6b0650$0$24163$ba620e4c@reader0.news.skynet.be>
Organization: -= Belgacom Usenet Service =-
NNTP-Posting-Host: 194.78.136.107
X-Trace: 1063978577 reader0.news.skynet.be 24163 194.78.136.107:57344
X-Complaints-To: usenet-abuse@skynet.be