🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: nl.comp.programmeren
Article #471

Re: C# garbage collector

#471
From: rick
Date: Fri, 19 Sep 2003 12:56
51 lines
3530 bytes
>> > 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;
>> > }
>> >
>> > Is dat nodig? Ik dacht dat C# garbage collection had. Of dient het enkel
>> > om C# een "hint" te geven dat dit object verwijderd kan worden?
>> >
>> > Als het niet nodig is, hoe zit het dan met de complexiteit? Kan ik deze
>> > code beter niet gebruiken of maakt het niet zo zeer uit qua
>complexiteit?
>>
>> Bovenstaande code is (alleen) nuttig als je 'image' niet langer meer
>> gebruikt. Als je aan 'image' direct een andere afbeelding 'hangt', bv :
>>
>> image = mijnAndereImage;
>>
>> dan heeft het geen enkele zin om (eerst) die code uit te voeren,
>> dat gebeurt dan al automatisch ('onder water').
>
>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.'
Technical Details
Message-ID: <bvulmv8hmij7ul4cf9ph8m5799mmls1b79@4ax.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!newshosting.com!news-xfer1.atl.newshosting.com!diablo.voicenet.com!news2.euro.net!postnews1.euro.net!news.wanadoo.nl!not-for-mail
References: <bkecq3$11sg$1@nl-news.euro.net> <3vklmvsj3lsprdrvjrplk7rcknecl8f967@4ax.com> <3f6aedc8$0$31737$ba620e4c@reader1.news.skynet.be>

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 05:54:12 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!newshosting.com!news-xfer1.atl.newshosting.com!diablo.voicenet.com!news2.euro.net!postnews1.euro.net!news.wanadoo.nl!not-for-mail
From: rick@nomail.net
Newsgroups: nl.comp.programmeren,be.comp.programming
Subject: Re: C# garbage collector
Date: Fri, 19 Sep 2003 14:56:11 +0200
Message-ID: <bvulmv8hmij7ul4cf9ph8m5799mmls1b79@4ax.com>
References: <bkecq3$11sg$1@nl-news.euro.net> <3vklmvsj3lsprdrvjrplk7rcknecl8f967@4ax.com> <3f6aedc8$0$31737$ba620e4c@reader1.news.skynet.be>
X-Newsreader: Forte Agent 1.7/32.534
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Lines: 51
Organization: Wanadoo
NNTP-Posting-Date: 19 Sep 2003 12:54:01 GMT
NNTP-Posting-Host: ap-w-47d7.adsl.wanadoo.nl
X-Trace: 1063976041 willi.euronet.nl 34886 212.129.199.215:47044
X-Complaints-To: abuse@wanadoo.nl