Einzelnen Beitrag anzeigen

Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#1

Threads / Synchronize - zeitkritisch?

  Alt 17. Sep 2003, 11:03
Hallo,


ich habe eine Verständnisfrage :


Folgendes Problem:

Code:
THREAD (WatchDir)   // überwache LW mit ReadDirectoryChangesW
        |
        |
  z.B. |
  wenn n=1 dann,     // n = Anzahl der Zeilen in Liste
  Synchronize(Liste) // Änderungen am LW werden in Liste geschrieben,
                      // nach n Änderungen wird Liste an MainThread übergeben

Code:
MainThread (Hauptprogramm) // von hier aus wird auch Thread (WatchDir) gestartet
        |
        |
        |
  Ändere(Liste)          // Liste wird verarbeitet, z.B. mit AVL-Tree verglichen
                          // und weggespeichert
Meine Frage ist nun, was passiert, wenn z.B. n=1 ist und diese eine Zeile der
Liste an den MainThread weitergegeben wird.

Was geschieht, wenn die Verarbeitung der Liste [Ändere(Liste)] länger dauert,
und inzwischen vom Thread eine neue Listen-Änderung kommt. Geht diese Änderung nun
verloren, oder übernimmt das MessageSystem von Windows die korrekte Abwicklung?

Falls das MessageSystem die korr. Abwicklung übernimmt, gibt es mögliche Grenzen?

Mit anderen Worten, ist das Ändere(Liste) zeitkritisch, oder kann ich noch einen
Suchbaum bearbeiten und die Daten wegspeichern?
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat