Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#8

AW: Application.ProcessMessages über Synchronize in Thread erlaubt?

  Alt 28. Jun 2012, 19:47
Threads sind nicht die Lösung für alle Probleme.
Was macht der neue Thread hier? Er wartet (hoffentlich) auf die DB, um dann synchronisiert auf der Mainform rumzumalen. Super, das gleiche Problem, nur mit einem Thread mehr

Dabei ist das Ganze ein Synchronisierungsproblem, das ich mit einem Zustandsautomat lösen würde:

automat.png

Eingaben des Automaten:
  • queryDB: Anfrage an DB wurde gestartet
  • DBfinished: ADO ist fertig
  • planRepaint: dein Thread macht das Synchronize

Ausgaben des Automaten:
  • doRepaint(): das was du eigentlich machen wolltest


Es wäre mehr als merkwürdig, wenn dir queryDB und DBfinished nicht irgendwo mitgeteilt würden (-> Ereignisse). Die Übergänge die nicht eingezeichnet sind, sollten Fehlerfälle sein.


Zwei boolesche Flags würden es auch tun, aber so ist es aussagekräftiger und kann gut um weitere Zustände ergänzt werden.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat