|
NX Programmierung : Main Thread Probleme beim asynchronen Ausführen von NXOpen Programmen
nxdev am 15.03.2024 um 14:22 Uhr (1)
Hallo Zusammen,ich möchte aus meiner WindowsForms Applikation ein NXOpen Programm asynchron ausführen um das User Interface reaktiv zu halten.Nur leider treten gelegentliche main thread Fehler auf.Daher meine Frage, ob das überhaupt umsetzbar ist und wenn ja was ich falsch mache? private async Taskint DoWorkAsync() { int returnValue = 1; try { string consoleOutput = string.Empty; await Task.Run(() = { ...
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Main Thread Probleme beim asynchronen Ausführen von NXOpen Programmen
nxdev am 18.03.2024 um 08:05 Uhr (1)
Hallo Michael,danke für die schnelle Rückmeldung.Die ExectueShellCommand ruft mein NXOpen Programm im Batch Modus auf.Das Programm enthält auch die von dir genannte GetSession Methode. Das User Interface löst lediglich nur den Trigger aus, um die Abarbeitung des Programmes durchzuführen. Nach der Beendigung meines NX Programmes wird falls nötig aus dem User Interface erneut das Programm aufgerufen und ausgeführt (Schleife). Mit reaktiv meinte ich eigentlich das verhindern des Einfrierens vom User Interface ...
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Main Thread Probleme beim asynchronen Ausführen von NXOpen Programmen
nxdev am 21.03.2024 um 10:17 Uhr (1)
Zu 1.Genau, es ist eine Windows Forms Anwendung.Durch das Ausführen im Hintergrund wurde ja das Einfrieren des UI´s bereits verhindert. Deshalb brauche ich das DoEvents() nicht.Zu 2.Es wird als Prozess gestartet und dabei wird der StandardOutput sowie der Error ebenfalls ausgegeben.Die genannte Fehlermeldung taucht aber im NX Log auf...Zur letzten Frage:Das Programm wird nicht Parallel ausgeführt, was aber möglich ist. Sinn macht es aber eher weniger.Viele Grüße
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Main Thread Probleme beim asynchronen Ausführen von NXOpen Programmen
nxdev am 25.03.2024 um 09:05 Uhr (1)
Hallo Michael,nur in dem Code Ausschnitt den ich hier aufgeführt habe, wird Threading benutzt, um das eigenständige NXOpen Programm wo auch die GetSession() aufgerufen wird auszuführen. Darin wird kein Threading benutzt. Es gibt auch keinen anderen BackGround Worker, weder im UI noch im NXOpen Programm.Viele Grüße
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Main Thread Probleme beim asynchronen Ausführen von NXOpen Programmen
nxdev am 25.03.2024 um 13:39 Uhr (1)
Hallo Michael,habe den Fehler entdeckt. Tatsächlich prüfe ich im Vorfeld (im UI) noch die Item ID ab, was natürlich auch im Background geschieht.Das erzeugt die Meldung in meiner Logfile Zurecht.Ich war aber iwie auf mein asynchron ausgeführtes Programm fixiert und hab daran gar nicht mehr gedacht...Danke für deine Hilfe!Viele Grüße
|
In das Form NX Programmierung wechseln |