Thread transitoire TThread TThread Thread:transitoire

Un thread transitoire est un thread auquel on attache un seul traitement et dont la durée de vie est limitée dans le temps. En général, on utilise ce genre de thread quand les variables nécessaires à l’exécution ne sont pas partagées avec un autre thread ou le thread principal. De même, on utilise également le thread transitoire lorsque le résultat du traitement du thread n’est pas exploité directement dans l’application (comme une compression de fichier par exemple).

Exemple d’implémentation

Reprenons notre exemple avec notre moteur de calcul. On ajoute un autre bouton sur la form pour implémenter un calcul désynchronisé.

procedure TForm1.ComputeAsync; 
  var myComputeThread:TComputeThread; 
begin 
  myComputeThread:=TComputeThread.Create(True); 
  myComputeThread.IterMax := SpinEdit1.Value; 
  myComputeThread.OnTerminate := GetResult; 
  myComputeThread.FreeOnTerminate := True; 
  myComputeThread.Start; 
end; 

On crée un thread de type TComputeThread en mode suspendu, c’est-à-dire qu’il n’exécutera pas sa propre procédure Execute tant que le thread appelant n’appellera pas la procédure Start.

On affecte la valeur IterMax et on associe l’évènement OnTerminate à la procédure GetResult. On affecte...

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
La classe TThread
Suivant
Thread transitoire par procédure anonyme (TThread.CreateAnonymousThread)