003
11.07.2005, 17:58 Uhr
~Richard
Gast
|
Hallo ihr beiden,
ich glaube das mit dem Thread synchronisieren ist eigentlich garnicht notwendig?! Und ein Kennzeichen brauche ich nicht mitschicken, denn ich kann anhand der Antwort erkennen, daß diese Antwort auf meine Anfrage paßt.
Jetzt kam mir eine andere Idee, die eigentlich funktionieren müßte. Bitte um Kommentar, ob man das als "Windowsprogrammierer" auch so macht und ob das ein gescheites Konzept oder Murks ist. (Ich komme eher aus der Embedded/Mikrocontroller-Programmierung).
1.) Es gibt einen Thread, der alle empfangenen Antworten entgegen nimmt und in eine Queue einreiht. Sonst nix. 2.) Benutzer klickt auf Button. Die zugehörige Button-Klick-Funktion startet einen/den Timer. 3.) Der Timer löst irgendwann (z.B. nach 50ms) aus und lädt sich wieder nach, sodaß er nachfolgend alle 50ms auslöst. In der Timerfunktion selbst ist eine Statemaschine. Diese ist so aufgebaut: a. Anfrage verschicken b. Überprüfen, ob bei den vom (1) Thread empfangenen Antworten DIE richtige dabei ist c. Wenn nein, dann Statemaschine beenden und beim nächsten Durchgang (also nach weiteren 50ms) erneut prüfen. d. Wenn ja, dann die gerade empfangenen Daten aufm Bildschirm ausgeben. e. nächster State - im Prinzip wiederholen sich ab jetzt die Schritte a. bis d. f. Abfolge abgearbeitet, Timer stopp sich selbst, o.ä.
Das sollte so prinzipiell funktionieren?!
Weitere Frage: Wie teilt die Button-Klick-Funktion meiner Timer-Statemaschine mit, daß da jetzt was anliegt, d.h. wie macht man so eine Schnittstelle. Aus embedded Sicht würde ich da ne globale Variable machen, in die ich diese Infos reinschreibe, so im Stile: #define AnfragenBlock1Abarbeiten 0x01 TriggerTimerStatemaschine=AnfragenBlock1Abarbeiten; Und das dann im Timer abfragen.
Mein Bauchgefühl sagt mir, daß man sowas aus Windows/OO-Sicht nicht macht. Wie macht man das aber besser? Kurzer Hinweis auf Konzept, oder ein paar Stichworte genügen mir.
> [...] oberfläche vom sammeln der informationen abkoppeln [...] Das wäre ja durch mein oben beschriebenes Konzept ja schon erreicht.
Danke, Richard |