GUI mit eine Funktion ausführen lassen



  • Hallo Forum,

    ich habe in einer Anwendung einen globalen EventHandler registriert. Per Logging sehe ich nun eine lange Liste von Events. Die meisten sind MTA Events, aber ein paar Events die mit Controls zu tun haben sind STA. Ich vermute das der STA Thread der GUI Thread ist. Nun möchte ich das dieser GUI Thread eine Funktion von mir ausführt. Wie kann ich diese Nachricht in die Nachrichtenschleife des GUI Threads legen? Ich weiß im Moment nur die Nummer des Threads.

    Vielen Dank

    Peter



  • Schau mal in [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke)
    Falls du kein Form/Window/Control hast (kennst), dann evtl. SynchronizationContext verwenden.



  • Ich arbeite mit dem SDK von SAP Business One bzw dessen Kapselung von Coresuite. Das Problem ist das es dort kein BeginInvoke gibt.

    Workaround:
    Ich kann WinForms erstellen und mit der Methode LoadToSAP() nach SAP laden lassen, diese Controls auf der WindowsForm haben dann ein BeginInvoke(). Würde es funktionieren wenn ich eine solche Form im Hintergrund laden lasse und dort dann meine Funktionsaufrufe ausführen lasse? Ich probiere es mal aus. Ich dachte es gäbe eine Möglichkeit direkt etwas in die Nachrichtenschleife zu schreiben wenn man die ThreadID weiß.


Anmelden zum Antworten