Lade...
 

CX_GARBAGE_MANAGER::Deregister

CX_GARBAGE_MANAGER::Deregister

213014
Beschreibung:

Meldet ein Objekt, Collection oder Vektor von der Garbage-Collection ab.Das heißt, dass das Objekt nicht mehr von der GarbageCollection gelöscht wird, sobald es nicht mehr referenziert wird. Der Speicher bleibt durch das Objekt belegt, bis der Prozess beendet wird. Hierdurch können Memory-Leaks verursacht werden und die Methode sollte nur dann aufgerufen werden, wenn es wirklich notwendig ist. Ein abgemeldetes Element kann nachträglich wieder in der GarbageCollection per Register angemeldet werden.

Falls das Element der GarbageCollection vorher nicht bekannt war, dann tut dieser Aufruf nichts. 

Wird eine Collection, Vektor von der GarbageCollection abgemeldet, dann hat dies keinen Einfluss darauf, ob die Elemente dieser Collection in der Mark-Phase angefasst werden oder nicht. Falls eine große Collection von Objekten gehalten wird, die von der GarbageCollection nicht gelöscht werden müssen (persistent / KEEP), dann kann das Markieren der Collection-Elemente per UnprotectContents deaktiviert werden und somit den gesamten Ablauf beschleunigen.

 

Code-Beispiel:
Var(dt)
CreateTransObject(CX_DATE) -> dt
dt GetManager(GARBAGE) Call(Deregister)
// Equivalent to:
CreateTransObject(CX_DATE, KEEP) -> dt
Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_GARBAGE_MANAGER Garbage-Manager-Objekt
  Top-1 Objekt | Collection | Vektor Das zu deregistrierende transiente Element
Funktionsaufruf: Call(Deregister)