När ska man använda dispose()?. Vad gör det? Rensar upp i minnet? När är det bra? Dispose behöver inte användas utan garbage collectorn tar hand om objekt som inte längre används. Det är en av de enormt stora styrkorna med .net. Dispose kan du använda om du vill skicka ett objekt till gc:n utan att invänta den normala städningen när tråden tappas från objektet, exempelvis när en funktion eller subrutin gått klart och återvänder till den ordinaie programslingan. De gånger jag anser att man behöver anropa Dispose är Gah!!!Dispose() ???
Många frågor.... och hoppas på många bra svar! Har under en längre tid undrat är man ska använda dispose() till.Sv: Dispose() ???
Städningen sköts automatiskt och hanterar objekt så ju högre belastning servern har med internminnet, desto snabbare städar gc:n datat från minnet. Går servern på lågfart tömmer den varefter i jämn takt.Sv: Dispose() ???
1. När objektet låser någon slags resurs, t.ex. en fil.
2. När objektet har allokerat mycket eller dyra resurser, t.ex. i grafiksammanhang om du har stora bitmappar.
Det kan ta längre tid än man tror innan gc:en kickar in, speciellt om man har en klientapplikation.
/AndreasSv:Dispose() ???
- Dispose skickar ingenting till GC'n!!!
Dispose är en metod som du själv implementerar vanligtvis för att ditt objekt har <b>externa</b> resurser som den håller i under hela objektets livstid. Det finns alltså ingen anledning skapa en dispose metod för att städa undan andra .NET objekt utan endast då du har filer, databaskopplingar, fönsterhantag osv.
Dispose går hand i hand med Destruktorn, vanligtvis så är det destruktorn som ser till att slänga de externa "icke managed" resurserna. Men eftersom, som det sagts innan, inte finns någon garanti för när destruktorerna körs så har man Dispose som en genväg för att kunna ropa på samma funktionalitet själv.
Om ett objekt har en dispose metod så är det generellt en mycket bra ide att ropa på den innan objektet tappar scope.