Ho trovato il problema.
In pratica:
creo contemporaneamente Animazione1 e Animazione2 e i relativi thread di lettura.
Animazione1, chiama LoadFile(): TStream, questo blocca la ThreadList, la quale viene rilasciata alla fine della funzione(*). a questo punto Animazione 1 inizia a copiare i dati dallo Stream nella propria cache.
Animazione2, appena la Thread List viene rilasciata dalla Animazione1 (*) inizia a copiare anche lei i dati dallo Stream alla sua cache; qui nasce il problema perchè Animazione1 non ha ancora terminato di farlo.
ho eliminato quindi l'UnlockList dalla fine della funzione LoadFile(), chiamandolo invece dalla classe Animazione dopo che i dati sono stati completamente prelevati dallo Stream.
Andrea.

Rispondi quotando