variable freigeben

ternanok

Mitglied
Hallo!
Ich habe mal eine Frage:
In VB.Net gibt's eine nette Funktion Space(), damit kann man in ein String Leerzeichen einfügen. Man kann damit auch eine bestimmte Anzahl an Megabyte im Speicher belegen, was ich auch gemacht habe.
Meine Frage ist jetzt: Wie kann ich diesen belegten Speicher freigegeben solange mein Programm noch läuft, den der Speicher wird aber erst dann fregegeben, wenn ich das Programm schliesse.
Code:
Public s As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     s = Space(60000000) 'hier werden ungefähr 60MB belegt
End Sub
 
Setz den String null. Dann verwirfts der Garbage Collector irgendwann.

Ad egal sein:
Wenn du willst, dass dir jemand hilft, dann sei bitte in Zukunft freundlicher, ja? Warum ich gefragt hab? Weils ein wenig nach Unsinn aussieht ..
 
Ich wollte das nicht erklären, weil das viel zu viel ist. :)
Und das mit dem auf null setzen habe ich schon ausprobiert und es hatt nicht funktioniert.
 
Du musst den Garbage Collector abwarten bis er den Speicher freigeräumt hat.
Es gibt wohl auch Möglichkeiten ihn explizit anzustarten, normalerweise macht der zu einem beliebigen Zeitpunkt.
Es gab einen speziellen TechTalk von Wolfgang Kroneder, er hat die Funktionsweise sehr gut erläutert. Leider sind dort die entsprechenden Folien nicht online.
Mit den Systemmonitor kannst du den Ablauf verfolgen.
 
Du kannst ein GC.Collect() machen. Allerdings würd ich das nicht unbedingt tun. Und da 60 MB dann doch recht viel an Speicherverbrauch ist, stellt sich die Frage, ob das denn überhaupt sein muss. Und soviel kanns net zu erklären sein.
 

Neue Beiträge

Zurück