Eigene Verarbeitungsklasse und View-Klasse. Wie kommunizieren?



  • Situation: Applikation mit Verarbeitungsklasse und Dialogklasse. Während der Datenverarbeitung soll in der View (also Dialog) über den aktuellen Fortschritt, aktuelle Tätigkeit usw. informiert werden.

    Nun, wie löst man das am Besten?
    .. In dem man nun User-Messages von der Verarbeitungsklasse an die View sendet oder gibt man beim Methodenaufruf einfach ein Pointer des Dialoges mit und greift dann innerhalb der Verarbeitungsmethoden direkt auf die Instanzvariablen (sind public) zu und manipuliert so die View?

    Was ist 'besser' bzw. was sind die best practices dazu?

    Ich behaupte jetzt mal, dass das senden von Messages nicht unbedingt OOP sind.



  • Ich nehm mal an das deine Verarbeitungsklasse einen eigenen Arbeitsthread hat da sonst die Anwendung zur Zeit der Ausführung nicht ansprechbar ist. Wenn ja dann haste meines Wissens nach zwei Möglichkeiten.

    1. Globale Variablen. ( Für einfache sachen sicher der schnellste weg )

    2. Events

    Zu den Windowsnachrichten schön und gut aber das geht nur in eine Richtung den der Arbeitsthread hat keine Nachrichtenschleife.

    An deiner stelle würd ich mit Events arbeiten damit kannste dann auch dein Thread Synchronisieren. Fals du vorhast das mit Globalen Variablen zu machen empfehle ich dir das du bissel was über Kritische Abschnitte liest ansonsten kannste dich da schnell verennen wenn beide seiten in die Variablen schreiben können.



  • XeXeS schrieb:

    Ich nehm mal an das deine Verarbeitungsklasse einen eigenen Arbeitsthread hat da sonst die Anwendung zur Zeit der Ausführung nicht ansprechbar ist.

    Ja richtig, ist so. Sorry, das hatte ich vergessen zu erwähnen.

    XeXeS schrieb:

    1. Globale Variablen. ( Für einfache sachen sicher der schnellste weg )

    2. Events

    In der OOP globale Variablen zu verwenden, finde ich nicht sehr schön.

    XeXeS schrieb:

    den Windowsnachrichten schön und gut aber das geht nur in eine Richtung den der Arbeitsthread hat keine Nachrichtenschleife.

    ACK. Aber was ist der Unterschied zwischen 'Events' und 'WM_Messages'?



  • Nachricht geht nur vom Arbeiterthread zum Windowssfenster. Bei einem Event geht die Kommunikationsmöglichkeit in beide Richtungen.


Anmelden zum Antworten