Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Garbage Collection

Postades av 2006-02-08 08:23:21 - Peter Johansson, i forum vb.net, Tråden har 4 Kommentarer och lästs av 647 personer


Vad är skillnaden i följande hantering:

objekt.dispose()

objekt = Nothing

Vad gör de två och hjälper dessa .NET egen garbage collection. Är det någon ide att "hjälpa" GC'n med att göra dessa anrop när man inte skall använda ett objekt mer?


Svara

Sv: Garbage Collection

Postades av 2006-02-08 08:52:08 - Andreas Paulsson

object = Nothing markerar för CLR:en att objektet är redo för garbage collection. Det säger dock inte något om när det verkligen avallokeras; CLR:en gör det i egen takt när den tycker att det passar.

object.Dispose() kan du anropa på klasser som implementerar IDisposable. Klasser som implementerar IDisposable ser då till att avallokera de resurser som de använder, t.ex. bitmappar, filer osv. Det säger dock ingenting om garbage collection, utan skräpsamlaren kommer att avallokera objektet i egen takt någon gång senare efter att du släppt alla referenser till det. Efter att du anropat Dispose() så bör du inte använda objektet eftersom det avallokerat sina resurser.

Man kan se Dispose som ett sätt att skynda på avallokering av resurser i de objekt som anropar Dispose på.

/Andreas


Svara

Sv: Garbage Collection

Postades av 2006-02-08 15:55:46 - Ola Lindfeldt

objekt = Nothing
är nästan helt onödigt att använda i Dotnet.
Men det finns ett undantag.
<code>
Public Sub Jobba()
objekt1.BehandlaMktData()
objekt1.dispose()
objekt1 = Nothing ' <-- GC får möjlighet att kasta bort objekt1.
objekt2.ArbetaI3minuterMed50AndraMB() 'Medans detta pågår,
'så lever objekt1 och rensas inte bort av GC (om inte objekt1 = Nothing)

End Sub ' <-- alla lokala objekt sätts till Nothing automatiskt..
</code>
Men följande är meningslöst:
<code>
objekt1.Arbeta()
objekt1 = Nothing
End Sub
</code>


Svara

Sv:Garbage Collection

Postades av 2006-02-08 21:30:57 - Oskar Johansson

>>
<code>
Public Sub Jobba()
objekt1.BehandlaMktData()
objekt1.dispose()
objekt1 = Nothing ' <-- GC får möjlighet att kasta bort objekt1.
objekt2.ArbetaI3minuterMed50AndraMB() 'Medans detta pågår,
'så lever objekt1 och rensas inte bort av GC (om inte objekt1 = Nothing)

End Sub ' <-- alla lokala objekt sätts till Nothing automatiskt..
</code>
<<

Jag tror att det är onödigt att sätta objekt1 till Nothing i den där koden, har nämligen för mig att gc är så smart att den kollar ifall det finns någon chans att objektet kommer användas senare i koden eller inte. Men visst, det finns fall med t.ex. massa loopar, en massa villkor etc. där det kan vara vettigt att sätta saker till null.


Svara

Sv: Garbage Collection

Postades av 2006-02-09 10:08:04 - Ola Lindfeldt

Möjligen är det så, men att sätta till Nothing här kan också betraktas som ett sätt att försäkra sig om att man gör saker i rätt ordning.

<code>
' EXEMPEL_A
Public Sub Jobba()
dim value As String
objekt1.BehandlaMktData()
value = objekt1.Value ' ** Rätt ! **
objekt1 = Nothing ' <-- Najs.. GC får möjlighet att kasta bort objekt1.
objekt2.ArbetaI3minuterMed50AndraMB()
value = objekt1.Value ' fungerar inte - vilket är bra, eftersom detta vore dumt
End Sub
</code>

Om jag inte satte till Nothing och sedan plockade value sist så hade objekt1 levt medans objekt2 arbetar, vilket vore onödigt. Genom att sätta till Nothing så undviker man misstaget (i VS 2005 får man dessutom 'stavningskontroll' direkt i editorn om man gör misstaget att referera objekt som är Nothing - dvs: misstaget att förbruka för mycket RAM undviks redan i editorn innan kompileringen, om man tar för vana att sätta till Nothing när det är lämpligt).


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
368
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies