|
|
Les applications multithreads sont des applications qui contiennent plusieurs chemins d'exécution simultanés.
Pour créer un thread, on utilise la fonction Createthread. Voici les paramèretres de la fonction Thread :
Pour arrêter un thread, on dispose de deux fonctions : ExitThread et TerminatedThread. La fonction ExitThread permet à thread de mettre fin à sa propre exécution.
La fonction TerminateThread permet à un processus de mettre fin à l'un de ses threads.
L'utilisation de cette fonction n'avertit pas les DLL de la fin d'éxècution du thread. La pile du thread n'est pas libérée par cette fonction.
La pile d'un thread est une zone mémoire allouée. Par défaut, la pile d'un thread est de 1Mo. Vous pouvez changer cette taille grâce au paramètre swStacksize de la fonction CreateThread.
Pour attribuer une nouvelle priorité à un thread, on utilise la fonction SetThreadPriority.
Pour fixer un niveau de priorité, on utilise la fonction setThreadPriority.
On dispose pour cela de la fonction GetProcessTime permettant de connaitre le temps consommé par tous les threads d'un processus.
Pour endormir un thread, il y a deux fonctions : Sleep et SleepEx. La fonction Sleep endort le thread pour un temps fini alors que la fonction SleepEx endort le thread pour un quantum.
Pour qu'un thread s'endorme et passe la main à un autre thread jusqu'il reçoive de nouveaux messages, on utilise pour cela la fonction WaitMessage.
Delphi propose la clasee TThread pour représenter un objet thread. Pour l'utiliser, il faut définir une nouvelle clasee dérivée de la classe TThread puis surcharger sa méthode Execute. La méthode Suspend Cette méthode permetde positionner un thread dans l'état endormi. Le thread pourra être réveillé.
La méthode Resume Pour être réveilléun thread, on utilise la méthiode Resume.
La méthode WaitFor Cette méthode permet d'attendre la fin d'éxécution d'un thread( soit à une sortie de la méthode Execute ou le passage de la propriété Terminated à True). La propriété FreeOnTerminate Cette propriété de type booléen permet de déterminer le responsable de la libération de la mémoire de l'objet thread. Par défaut, cette propriété est à false. Ce qui signifie que vous êtes responsable de la libération de la mémoire de l'objet. En mettant cette propriété à true, l'objet thread doit lui même libérer son espace mémoire à la fin du traitement. La propriété
Handle |
Tous droits réservés - Contacts |