Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism "Verkettetes Netz" in einer Winforms-Anwendung (https://www.delphipraxis.net/50909-verkettetes-netz-einer-winforms-anwendung.html)

Mystic 2. Aug 2005 18:02


"Verkettetes Netz" in einer Winforms-Anwendung
 
Ich suche nach einem einfachen und performanten Weg ohne {$UNSAFECODE ON} ein "verkettetes Netz" zu erstellen.

Jeder Knoten besitzt eine Menge an einseitigen Verbindungen zu anderen Knoten (wie eine einfach verkettete Liste, nur das ein Element mehrere Nachfolger haben kann). Die Verbindungen selbst haben eine Wichtung.

Mit Records und Pointern kann ich das ja nicht lösen. Wie krieg ich das jetzt hin?

/edit: Offene Frage

Dax 2. Aug 2005 18:03

Re: "Verkettetes Netz" in einer Winforms-Anwendung
 
Mit Klassen statt Records und Referenzen statt Pointern ;)

Mystic 2. Aug 2005 18:04

Re: "Verkettetes Netz" in einer Winforms-Anwendung
 
:wall:

Okay, danke. :stupid:

PS: Wenn ich das gesamte Netz loswerden will, entledige ich mich einfach allen Referenzen auf das Netz und vergesse es dann einfach (Stichwort GC)?

Robert_G 2. Aug 2005 20:29

Re: "Verkettetes Netz" in einer Winforms-Anwendung
 
Dafür sind GCs da. ;)
Aber du musst aufpassen, dass du keine weak references hälst. Hauptsächlich Event subscriptions...
Die verhindern natürlich, dass ein Objekt freigegeben wird. ;)

Mystic 2. Aug 2005 22:49

Re: "Verkettetes Netz" in einer Winforms-Anwendung
 
Ist es nicht genau umgekehrt?

MSDN hat geschrieben:
Represents a weak reference, which references an object while still allowing it to be garbage collected.

Robert_G 3. Aug 2005 04:07

Re: "Verkettetes Netz" in einer Winforms-Anwendung
 
Code:
A a = new A();
B b = new B();

b.X += a.Miep;
Wenn b nicht mehr benutzt wird können beide freigegeben werden. Solange b benutzt wird kann a nicht freigegeben werden.
Damit hatte ich selbst schon sehr unangenehme Erfahrungen. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz