Ok, deduco che tu non abbia letto attentamente la mia prima risposta, dato che c'era una esplicita richiesta sull'uso del metodo Synchronize alla quale non hai risposto.
Il metodo Synchronize permette di eseguire un metodo "sincronizzandolo" con il thread principale dell'applicazione; la chiamata a Synchronize deve essere fatta solo ed esclusivamente per quelle istruzioni che vanno sincronizzate con il thread principale, ad esempio per aggiornare una ProgressBar (come nel tuo caso) o altro ancora.
Se passi il metodo che occupa tempo e CPU alla Synchronize, il thread principale si fermerà fino a quando tale metodo non avrà terminato la sua esecuzione; limitati a chiamare la Synchronize solo nel punto esatto in cui devi aggiornare la ProgressBar o accedere a risorse (form, controlli, variabili) utilizzate dal thread primario.
Ciao!![]()


Rispondi quotando