Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  NXOpen C# Delegates

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   NXOpen C# Delegates (220 mal gelesen)
nicolasj92
Mitglied


Sehen Sie sich das Profil von nicolasj92 an!   Senden Sie eine Private Message an nicolasj92  Schreiben Sie einen Gästebucheintrag für nicolasj92

Beiträge: 3
Registriert: 02.05.2017

erstellt am: 02. Mai. 2017 09:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich programmiere eine Anwendung für NXOpen die auf bestimmte Netzwerknachrichten reagiert. Sobald eine Nachricht empfangen wird, wird eine Callback Funktion ausgeführt.

Aus der main() function ist es mir problemlos möglich NX zu steuern. Aus dieser Delegate Function heraus gibt es aber in NX10 einen Fatal Error sobald ich versuche etwas am UI zu beeinflussen wie z.B. eine Message Box zu zeigen.
In NX11 gibt es keinen Fatal Error, im System Log steht aber:
Attempt to display message box from non-ui thread ignored.

Hat hiermit jemand Erfahrung? Muss man irgendwie manuel den Thread wechseln in dem der Code ausgeführt wird? Ich arbeite mit C# unter VS2017

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

matthias-p
Moderator
Konstruktion / Anwenderbetreuung


Sehen Sie sich das Profil von matthias-p an!   Senden Sie eine Private Message an matthias-p  Schreiben Sie einen Gästebucheintrag für matthias-p

Beiträge: 458
Registriert: 09.06.2006

Teamcenter 9.1 / NX 8
Windows 7 64-bit

erstellt am: 02. Mai. 2017 09:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für nicolasj92 10 Unities + Antwort hilfreich

Erfahrung nicht, aber ich weiß wo das Problem ist ;-)

Wenn eine Callback-Funktion aufgerufen wird, heißt das nicht, dass sie auch im GUI-Thread ausgeführt wird. Wenn du eine MessageBox zeigen willst, musst du das im GUI-Thread machen.

"Attempt to display message box from non-ui thread ignored."

Du musst also deinem Callback sagen, dass er sich mit dem GUI-Thread syncronisiert. Google mal nach den Begriffen "invoke" und "begin invoke".
Einen guten Artikel findest du auch dazu hier.
Das ganze hat nicht unbedingt was mit NXOpen zu tun, sondern Multithreading .NET allgemein.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nicolasj92
Mitglied


Sehen Sie sich das Profil von nicolasj92 an!   Senden Sie eine Private Message an nicolasj92  Schreiben Sie einen Gästebucheintrag für nicolasj92

Beiträge: 3
Registriert: 02.05.2017

erstellt am: 02. Mai. 2017 10:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke das hat mein Problem gelöst   

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2017 CAD.de