Utilisateur anonyme
-
3 août 2003 à 23:29
yvemoreau
Messages postés308Date d'inscriptionmardi 11 juin 2002StatutMembreDernière intervention26 septembre 2008
-
27 sept. 2003 à 20:32
Bonjour.
J'utilise un thread dans mon application, et ce thread est démarré au début du programme et doit être arrêté en fin de programme.
Ce thread utilise des procédures récursives assez longues à éxecuter, et il est important de pouvoir interrompre ces procédures lorsque j'appelle MonThread.Terminate.
Le problème est que la propriété Terminate a toujours la valeur False dans ces procédures récursives, même lorsqu'elle vaut True dans le contexte de Thread.Execute (ce qui me permet quand même d'arrêter mon thread, mais seulement lorsqu'un des procédures récursives est terminée).
En revanche, Delphi semble bien "comprendre" que le mot Terminated est une propriété du thread et pas une variable, et cela même dans le contexte des procédures récursives, puisque je n'ai pas de message d'erreur indiquant "identificateur non déclaré".
yvemoreau
Messages postés308Date d'inscriptionmardi 11 juin 2002StatutMembreDernière intervention26 septembre 2008 27 sept. 2003 à 20:32
peut-être ceci
Windows.pas
ExitThread(dwExitCode:DWORD);
-touts les objets handles ouvert par le thread sont fermé
-touts thread démarré par le thread sont terminé
-l'état du thread devient signalé
-l'état des thread créé par le thread deviennent signalé
-le status est changé par la valeur dword envoyé
exemple :ExitThread(4);
ExitProcess(uExitCode :UINT);
-touts les objets handles ouvert par le process sont fermé
-touts thread ouvert par le process sont fermé
-l'état du process devient signalé
-l'état des thread créé par le process deviennent signalé
-le status est changé par la valeur uExitCode envoyé