| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Probleme mit GetUnloadOption (2968 mal gelesen)
|
Vitalic Mitglied
Beiträge: 11 Registriert: 21.11.2011
|
erstellt am: 23. Nov. 2011 08:42 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe eine Form in C# mit Parametersteurung programmiert. Nun habe ich das Problem, dass jedesmal die Form sofort geschlossen wird, wenn das Programm durchgelaufen ist. Die Methode GetUnloadOption wird von NX automatisch aufgerufen und sorg dafür, dass durch Session.LibraryUnloadOption.Immediatrly meine Form geschlossen wird. Ich habe versucht, diese Methode selbst zu steuern, um bei einem bestimmten Verhalten Immediatly aufzurufen, jedoch bleibt dann die DLL weiterhin im Speicher.
Code: public static int GetUnloadOption(string arg) { return System.Convert.ToInt32(Session.LibraryUnloadOption.AtTermination); if (_bUnload) return System.Convert.ToInt32(Session.LibraryUnloadOption.Immediately); }
Hat eine eine Idee, warum das Programm immer noch im Hintergrund läuft bzw. was man anders machen müsste? MfG Vitalic [Diese Nachricht wurde von Vitalic am 23. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
seiwi Mitglied Programmierer, Systembetreuer
Beiträge: 53 Registriert: 28.06.2005 Windows 7 NX 7.5 bis NX11 VB .Net, C#, C, GRIP, NXOpen, SNAP
|
erstellt am: 23. Nov. 2011 09:41 <-- editieren / zitieren --> Unities abgeben: Nur für Vitalic
Hallo Vitalic, die beiden Optionen haben folgende Bedeutung: AtTermination = Entladen beim Beenden von NX Immediately = Entladen beim Beenden vom NXOpen-Programm Code:
public static int GetUnloadOption(string arg) { return System.Convert.ToInt32(Session.LibraryUnloadOption.AtTermination); // An dieser Stelle springt das Programm immer raus // Das Return greift ja immer und springt aus der Methode heraus... if (_bUnload) return System.Convert.ToInt32(Session.LibraryUnloadOption.Immediately); // Hier würde diese Unterfunktion nie hinkommen }
Wenn du zwei Fälle unterscheiden möchtest, wird hier eine if-else Abfrage besser sein. Ich hoffe ich konnte dir helfen, sonst Beschreib dein Problem einfach nochmal anders. LG Seiwi
[Diese Nachricht wurde von seiwi am 23. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Vitalic Mitglied
Beiträge: 11 Registriert: 21.11.2011
|
erstellt am: 23. Nov. 2011 10:07 <-- editieren / zitieren --> Unities abgeben:
Hallo Seiwi, ich versuche mal das Problem anders zu schildern. Ich habe eine Main Klasse und eine Form Klasse. Die Main-Klasse beinhaltet die Funktion GetUnloadOption und öffnet die Session. Nun möchte ich nach dem Beenden der Form die DLL aus dem Speicher entladen. Problem: Die GetUnloadOption wird bereits nach dem Aufruf der Form automatisch von NX aufgerufen und die Form geht sofort zu. Wie kann ich nun das Entladen der DLL selber bestimmen? MfG Vitalic
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
seiwi Mitglied Programmierer, Systembetreuer
Beiträge: 53 Registriert: 28.06.2005 Windows 7 NX 7.5 bis NX11 VB .Net, C#, C, GRIP, NXOpen, SNAP
|
erstellt am: 23. Nov. 2011 10:16 <-- editieren / zitieren --> Unities abgeben: Nur für Vitalic
Hallo Vitalic, ich denke es liegt dann am Grundaufbau von deinem Programm. Brauchst du wirklich eine Main-Funktion? Wenn du eine Form verwendest arbeitest du ja eigentlich ereignisbasiert, d.h. Es gibt Ereignis Load, wenn die Form geladen wird. Und ein Unload wenn die Form beendet wird. Währendessen hast du ja Ereignisse, wie z.B. Buttonclick, welche wieder Methoden auslösen. Weiter kannst du eine Form, modal und nicht-modal aufrufen, hier kann dir vielleicht folgender Eintrag helfen: Link Dialog Modal / Nicht-Modal LG Seiwi
------------------ Let's Rock... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Vitalic Mitglied
Beiträge: 11 Registriert: 21.11.2011
|
erstellt am: 23. Nov. 2011 10:47 <-- editieren / zitieren --> Unities abgeben:
|
| Lead Design Engineer (m/w/d) seriennahe Vorentwicklung | FORVIA HELLA ist ein börsennotierter, internationaler Automobilzulieferer. Wir sind ein Unternehmen der FORVIA-Gruppe, dem weltweit siebtgrößten Zulieferer von Automobiltechnologien. Als globaler Marktführer in wachstumsstarken Zukunftsbereichen beschäftigt FORVIA weltweit 157.000 Mitarbeitende. FORVIA HELLA steht dabei für leistungsstarke Lichttechnik und Automobilelektronik. Gleichzeitig decken wir ... | Anzeige ansehen | Teamleitung, Gruppenleitung |
|
Vitalic Mitglied
Beiträge: 11 Registriert: 21.11.2011
|
erstellt am: 28. Nov. 2011 14:38 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe nun ein anderes Probleme mit GetUnloadOption. 1. Ich habe mir ein eigenes Menü angelegt, welches meine .dll Datei aufruft. Das funktioniert soweit, doch das Entladen des Bildes geht nicht. Die dll bleibt weiterhin im Speicher. Hat jemand eine Ahnung warum das Entladen nicht funktioniert? 2. Ist es möglich die Menüs über die Programmierung zu erstellen, oder muss man das immer manuell hinzufügen? MfG Vitalic [Diese Nachricht wurde von Vitalic am 28. Nov. 2011 editiert.] [Diese Nachricht wurde von Vitalic am 28. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |