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?