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