Einzelnen Beitrag anzeigen

Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#1

[Threads] Datei exklusiv öffnen

  Alt 29. Sep 2004, 16:49
Hallo,

mein Programm zeigt in einer ListView Thumbs von Bildern.
Bei mir laufen 2 Threads. Ein Thread wartet auf Änderungen in dem gerade betrachteten Ordner.
(FindFirstChangeNotification). Sobald es eine gibt, wird der 2. Thread aufgeweckt und rendert
falls vorhanden, neue Thumbs hinzu. Das Ganze läuft eigentlich ganz gut.
Problem:
Wenn ich mehrere Bilder (100) in den Ordner kopiere wird FindNextChangeNotification mehrere Male ausgelöst, nicht nur einmal, wenn der komplette Kopiervorgang abgeschlossen ist. Ist auch ganz schön, dass es zwischendurch aktualisiert wird.
Nun rennt der 2. Thread los findet alle Bilder die zu einem bestimmtem Zeitpunkt schon vorhanden sind und versucht die Bilder zu rendern. Jetzt gibt es sporadische 'File Open Error' da auch Windows noch kopiert und der Thread wahrscheinlich auf manche Files zugreift, während diese sich noch in einem schwebenden Zustand befinden. Die File-Zugriffe sind natürlich in einem try-error Konstrukt, dass heißt der Bug fällt nicht auf, wenn ich die Exe ausführe, da der Thread zum Schluss sowieso nochmal drüberrennt und alle nicht gerenderten Bilder erwischt.
Das ist aber nicht sauber. Habt Ihr Ideen? Ich suche so eine Art exklusiven Zugriff oder eine Prüfung ob die Datei schwebend ist oder nicht. Gerne auch API-Befehle, das Programm besteht zum größten Teil aus ihnen..

Grüße

Sebastian
Sebastian
  Mit Zitat antworten Zitat