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...
Pour consulter la suite, découvrez le livre suivant :
couv_RIDELPH.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Thread transitoire par procédure anonyme (TThread.CreateAnonymousThread)
Suivant
Les concepts de ressource partagée et de section critique