Article View: nl.comp.programmeren
Article #470Re: C# garbage collector
From: Gerrit Cornelis
Date: Fri, 19 Sep 2003 11:54
Date: Fri, 19 Sep 2003 11:54
38 lines
2840 bytes
2840 bytes
<rick@nomail.net> wrote in message
news:3vklmvsj3lsprdrvjrplk7rcknecl8f967@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;
> > }
> >
> > 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.
Technical Details
Message-ID:
<3f6aedc8$0$31737$ba620e4c@reader1.news.skynet.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!newsfeed.news2me.com!skynet.be!skynet.be!louie!tlk!not-for-mailReferences:
<bkecq3$11sg$1@nl-news.euro.net> <3vklmvsj3lsprdrvjrplk7rcknecl8f967@4ax.com>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit 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 04:51:39 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!newsfeed.news2me.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> Subject: Re: C# garbage collector Date: Fri, 19 Sep 2003 13:54:55 +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: 41 Message-ID: <3f6aedc8$0$31737$ba620e4c@reader1.news.skynet.be> Organization: -= Belgacom Usenet Service =- NNTP-Posting-Host: 194.78.136.107 X-Trace: 1063972296 reader1.news.skynet.be 31737 194.78.136.107:56171 X-Complaints-To: usenet-abuse@skynet.be