LabVIEWForum.de
.net Referenz speichern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: .net Referenz speichern (/Thread-net-Referenz-speichern)



.net Referenz speichern - G-Freak - 11.10.2010 20:01

Hi,
ich möchte eine .net Referenz in einer lokalen Variablen halten, damit ich die API nicht jedesmal neu initialisieren muß (dauert!).
Leider ist die Referenz nach 3-4min nicht mehr brauchbar, weil der Referenztyp nicht mehr stimmt. Aus Labviewsicht ist die Referenz noch gültig/vorhanden. Hat jemand eine Idee wie man evtl. den Garbagekollektor überlisten oder die API dauerhaft initialisieren kann? Danke

Grüße


.net Referenz speichern - Y-P - 12.10.2010 06:22

Wieso schreibst Du sie nicht in ein Schieberegister?
Kannst Du mal Dein VI hochladen?
Hast Du immer noch LabVIEW 7? O

Gruß Markus


.net Referenz speichern - oenk - 12.10.2010 07:26

Hi G-Freak

ich kann mir nicht vorstellen, dass es am GarbageCollector liegt. Der arbeitet sehr, sehr, sehr konservativ. Zumal die Assembly in der LabVIEW AppDomain noch geladen ist und von daher nicht dem GarbageCollector zum Opfer fällt.
Wie gehst du vor? Du rufst den Constructor deiner .NET Klasse auf und speicherst die Referenc darauf? Sehe ich das richtig?
Welche Referenz geht dir verloren? Die auf das Klassenobjekt oder auf irgendwelche anderen Objekte der Klasse? Sind es andere Objekte als die Klasse selber: sind die Objekte persistent? Wenn nicht, fallen sie vielleicht doch dem GC zum Opfer. Unterbrichst du LV während dessen? Oder passiert dir das innerhalb eines Programmablaufs, dass die Referenz nicht mehr gültig ist?

Meine .NET Klassen initialisiere (aufruf des Constructors) zu beginn meines Programmes und sind nach einer Stunde Programmablauf immer noch gültig...

Gruess,
c