Questo non mi sembra il massimo, però dipende un po' dalla tua applicazione.Il terminate lo fa ogni qual volta finisce updateState (All'interno della funzione stessa).
Che significa "meglio"? Non ho ancora capito perchè non usi Terminated...Esegui mi serve per controllare meglio l'uscita dal thread, infatti la uso anche all'interno dell'updateState per fermare i cicli qualora fosse false
Se all'interno della updateState accedi ad una TListView, devi richiamarla con Synchronize. Non so se è questo che intendi con "funzione che sincronizzo", comunque è opportuno precisarlo.(faccio delle interrogazioni al database e ciclicamente aggiorno una listView dell'interfaccia grafica richiamando un'altra funzione che sincronizzo).
Perchè dal thread accedi a componenti del form principale. Se lo fai senza Synchronize qualche problema ci sarà ancora. Il problema mi pare sia stato spostato, non risolto.Cmq credo di aver risolto il problema: io creavo il Thread durante l'esecuzione dell'evento OnShow della form principale. Ora l'ho spostato, per una necessità diversa, dentro ad un timer che richiamo dall'OnShow e il problema è svanito! Direi quindi che ho avuto un cosidetto colpo di cul...
Non è che sarebbe meglio, quello è il sistema corretto.si è vero sarebbe meglio il AGGST.WaitFor()
L'applicativo non è in blocco, sta chiudendo i thread e questo puoi segnalarlo. Chiaro che se il tuo thread è appena entrato nello Sleep di 4 secondi per quel tempo non può certo chiudersi.tanto per non lasciare l'applicativo in stato di momentaneo blocco.
Figurati.Cmq grazie per l'aiuto.