delete()

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Macintosh

Betreff: delete()

BeitragSa, März 26, 2011 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
wird die methode Delete() aufgerufen wenn ein Objekt gelöscht wird?
Wenn nein, gibt es eine andere methode?

Danke

Xeres

Moderator

BeitragSa, März 26, 2011 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja. Delete wird aufgerufen wenn der GC seine Arbeit erledigt.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Macintosh

BeitragSa, März 26, 2011 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Alles klar. Danke :)
(in der doku *huuuust* steht nichts davon, oder?)

BladeRunner

Moderator

BeitragSo, März 27, 2011 8:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Es muss einem klar sein dass dieser Aufruf unter Umständen erst nach einiger Zeit erfolgt. Und wenn es beim Programmende ist eventuell garnicht. Daher würde ich dringendst davon abraten kritische Operationen in die Delete-Methode zu integrieren.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ProfJake

ehemals "DTC" / "Fabian Niemann"

BeitragSo, März 27, 2011 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst du das mit dem Programmende mal genauer erklären?
Ich dachte immer, dass der GC am Ende nochmal reinen Tisch macht und damit auch alle Delete() Methoden aufgerufen werden ..

Noobody

BeitragSo, März 27, 2011 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein entsprechendes Beispiel ist eigentlich schnell geschrieben BlitzMax: [AUSKLAPPEN]
Type TFoo
Method Delete()
Print "Time to say goodbye!"
End Method
End Type

New TFoo
GCCollect() 'Delete wird noch aufgerufen

New TFoo
End 'Kein Delete-Aufruf mehr!
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

empet

BeitragSo, März 27, 2011 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
bei mir wird bei diesem beispiel erst mit einem delay zwischen dem ersten NEW und GCCollect() gelöscht...

BlitzMax: [AUSKLAPPEN]
Type TFoo
Method Delete()
Print "Time to say goodbye!"
End Method
End Type

New TFoo
Delete 1000'<<<---
GCCollect() 'Delete wird noch aufgerufen


New TFoo
End 'Kein Delete-Aufruf mehr!


hat das einen sinn oder grund?

BladeRunner

Moderator

BeitragSo, März 27, 2011 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich schätze mal BMax gibt bei Ende alle Ressourcen frei ohne nochmal den GC durchlaufen zu lassen. So einfach ist das.
Man muss nur es nur wissen, da dies ja sonst ein unsauberes Verhalten zur Folge haben kann.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group