UI Update aus Klasse (asynchron)

Hallo

Versuche mich gerade mit dem Einstieg in Xojo und muss ziemlich viel umdenken (aus der C/C# Ecke).

Meine Frage: Ich habe eine Klasse “Class1” mit asynchroner Datenverarbeitung (Datenempfang per RS232 und UDP) und würde gerne das UserInterface updaten bzw. eine Methode in “Window1” aufrufen wenn neue Daten empfangen und verarbeitet wurden. Was ist die eleganteste Methode um dies zu bewerkstelligen? Event Definition oder ein Delegate? Oder…?

Event beim Serial?
Der ist schon auf dem Main thread und damit kann man updaten.

Ja, den Serial.DataAvailable Event kenne ich und verwende ich auch. Ich empfange aber von zwei Quellen (Serial und UDP) und verarbeite die Daten in einer Klasse. Klar könnte ich jetzt in beiden Events von Serial und UDP meine Klasse aufrufen und die verarbeiteten Daten als Rückgabewert verwenden. Möchte dies aber etwas eleganter lösen. Meine Klasse soll die Daten erhalten, verarbeiten und dann an alle Empfänger die Daten senden. Vielleicht ist es aber gar nicht so elegant :slight_smile:

Urs, keine Ahnung, ob du ein halbes Jahr spter auf eine Lsung gestoen bist. Falls nicht oder zumindest um anderen auf der Suche eine Lsung zu liefern:

Schau dir mal im Xojo-Examples-Ordner unter “Design Patterns” das Observer-Beispiel an. Das Subject/Observer-Interface bietet genau das: Du implementierst in deine Serial-Klasse das Subject-Interface, bindest andere Instanzen zur Runtime als Observer ein und versendest dann via NotifyObserver an smtliche Observer zugleich Mitteilungen, die diese in ihrer Update-Methode analysieren knnen.