Bonjour

J'ai besoin d'un Thread dans un programme traitant un certain nombre de lignes via une StringList, composée elle-même de plusieurs boucles de recherches/comparaisons/ajouts/deletes ; etc.

Autant dire que passé un certain nombre de lignes ; le programme se fige un peu, mais ne plante jamais et heureusement. Sauf qu'en ce cas ; ça prend pas mal de temps

J'ai passé du temps à regarder et tester des codes divers et variés. Mais manquait toujours « une pièce » afin d'aller jusqu'au bout

Présentement j'épluche ce tuto DVP :
https://delphi.developpez.com/faq/?page=Thread

1. J'ai créé une fiche secondaire ainsi qu'indiqué

2. En fiche principale de l'interface de mon programme à traiter, j'ai disposé dans la procédure gérant le traitement du splitage en question :

La déclaration en 'var' : MyThread: TTestThread

Juste avant le traitement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MyThread := TTestThread.Create(False);
Et juste après la fin du traitement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
// On demande au thread de s'arrêter "proprement". 
MyThread.Terminate; 
// Maintenant, on attend sa fermeture réelle. 
ExitCode := MyThread.WaitFor;
Je précise que si je lance mon programme, tout est RAS donc aucun plantage.

Me reste alors à lancer le Thread et si le lis bien, pour lancer ce Thread faut écrire une commande comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MyThread.Synchronize(UpdateForm);
Mais c'est là que je bute

Pouvez-vous svp me donner un petit coup de pouce ?
Mais au plus simple sans rien trop compliquer hein

Merci de vos lumières