Thread persistant Thread:persistant
Un thread persistant est un thread dont la durée de vie est égale à celle de l’objet qui a instancié ce thread. Cela peut aller jusqu’à la durée de vie de l’application. On utilise en général ce genre d’implémentation quand il y a des tâches périodiques à exécuter avec le même type de contexte.
La destruction du thread devra être effectuée manuellement en utilisant les méthodes Terminate et WaitFor.
Voici en plusieurs étapes un exemple d’implémentation :
-
Étape 1 : Ajout dans la form d’une référence sur le thread pour que l’on puisse l’arrêter et/ou le détruire quand on le souhaite :
TForm1
...
private
{ Private declarations }
FStart : Cardinal;
FCalculThread:TComputeThread; // <= référence sur le thread
function GetMaxIter:Extended;
procedure GetResult(Sender:TObject);
public
-
Étape 2 : Ajout d’un évènement pour synchroniser l’affichage des résultats dans la classe TComputeThread :
type
TComputeThread = class(TThread)
private
FResult:double;
FIterMax:Extended;
FLabel:TLabel;
FStart : Cardinal;
FOnComputingCompleted...