Salut à tous, voici mon problème :
Pour ne pas mobiliser l'interface d'un programme j'ai utilisé un objet de type "TThread" pour faire un calcul long. Tout marche bien sauf que moi je veux que, en cas d'un arrêt manuel ou automatique du traitement, le thread se libère (Dans la partie qui gère les threads et les processus du système d'exploitation) et que l'objet "TThread" se libère (par le destructeur) aussi et qu'il devienne "nil" "FreeAndNil".
D'après ce que j'ai lu, il faut insérer des tests sur "Terminated" dans "Execute" :
pour pouvoir arrêter le thread en plein travail, ça marche bien.
Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if Terminated then Exit;
Je me demande s'il faut mettre quelque chose à la fin de la méthode surchargée "Execute" pour indiquer que le traitement est terminé ???
D'après ce que je sais "Terminated" devient automatiquement "True" à la fin de "Execute".
Est ce que "FreeOnTerminate" libère l'objet TThread ???
Où se situe le déclenchement de "OnTerminate" ??? est ce entre la fin du traitement du thread et la destruction de l'objet ???
Bref je veux un "FreeAndNil" automatique à la fin du traitement d'un thread comment faire ???
Partager