Accueil > Forum > > > > Liberation d'un thread
Liberation d'un thread
samedi 1 septembre 2007 à 12:15:09 |
Liberation d'un thread

OcHre
|
Juste une question concernant la libération d'un thread créé depuis ma
fiche principale. Si je met la propriété FreeOnTerminate à True (donc
je n'appelle pas Thread.Free depuis ma fiche principale) et que
l'utilisateur du programme le ferme pendant que le thread s'éxecute,
celui-ci va se ballader en mémoire jusqu'au prochain reboot ou il va se
libérer? Rions un peu en attendant la mort.
|
|
samedi 1 septembre 2007 à 14:03:03 |
Re : Liberation d'un thread

Caribensila
|
Salut,
MonThread.FreeOnTerminate := true;
ne te dispense pas de :
procedure TMainForm.FormDestroy(Sender: TObject); begin if MonThread<>nil then MonThread.Free; end;
|
|
samedi 1 septembre 2007 à 14:16:12 |
Re : Liberation d'un thread

Caribensila
|
...Par contre, je me demande, dans le cas où on ne libère pas le Thread dans le Destroy de la fiche et si on ferme l'Application, si le Thread se libérera quand même quand il aura terminé sa tâche...

|
|
samedi 1 septembre 2007 à 15:37:21 |
Re : Liberation d'un thread

Delphiprog
|
Il est préférable de détruire un thread secondaire qui errerait seul dans les ténèbres de la machine.  En effet, si le thread secondaire essaie de se synchroniser avec le thread principal alors que ce dernier a pris la fuite, ça mène tout droit à une violation d'accès à coup sûr. Et s'il n'a pas besoin d'une synchronisation, alors on peut effectivement se demander ce qu'il devient. Voilà une question qu'elle est intéressante  May Delphi be with you !
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient. 
|
|
samedi 1 septembre 2007 à 15:37:48 |
Re : Liberation d'un thread

OcHre
|
Salut,
j'avais en fait testé avec la meme methode mais dans la propriété
OnClose de ma form sauf que cela m'amenait toujours à un message
d'erreur et je viens d'essayer avec OnDestroy idem... J'imagine donc
que les thread est effectivement bien libéré.
Merci pour ta réponse. Rions un peu en attendant la mort.
|
|
samedi 1 septembre 2007 à 15:43:17 |
Re : Liberation d'un thread

OcHre
|
Oups, je n'avais pas vu le post de Delphiprog.
Le thread devrait donc tester l'existence de la fiche et, si elle n'est plus, se terminer? Rions un peu en attendant la mort.
|
|
samedi 1 septembre 2007 à 15:59:56 |
Re : Liberation d'un thread

Caribensila
|
@ Delphiprog
Dans le cas d'un Thread secondaire non synchronisé, et en cas de fermeture de l'Application, ce Thread ne deviendrait-il pas tout simplement un processus (process) comme un autre?
|
|
dimanche 2 septembre 2007 à 09:51:08 |
Re : Liberation d'un thread

BruNews
|
Réponse acceptée !
Salut les Delphistes,
je n'entends rien à votre langage mais comme je suis tombé sur ce post par hasard...
Un processus (l'enveloppe) est créé quand le lancement d'un thread primaire réussit et que le bloc mémoire est suffisant. Windows garantit la destruction de tout thread secondaire s'exécutant dans l'espace processus quand le thread primaire retourne, par exemple et le plus courant suite à un retour 0 de GetMessage menant au ExitProcess. Ceci pour dire qu'un thread balladeur orphelin n'a aucune chance d'exister.
ciao... BruNews, MVP VC++
|
|
dimanche 2 septembre 2007 à 10:45:56 |
Re : Liberation d'un thread

OcHre
|
Merci pour ces explications qui répondent parfaitement à ma question initiale. Rions un peu en attendant la mort.
|
|
dimanche 2 septembre 2007 à 14:51:06 |
Re : Liberation d'un thread

Caribensila
|
... Après quelques tests.
Effectivement, il n'y a jamais de Thread orphelin. Et comme l'a fait remarquer très justement BruNews, il semble bien que Windows se charge de la destruction du Thread en cas de fermeture anticipée de l'Application sans précaution (destruction qui ressemble d'ailleurs à un crash).
Cependant,
procedure TForm1.FormDestroy(Sender: TObject);
begin
if Thread<>nil then Thread.Free;
end;
garantie que le Thread terminera sa tâche en douceur en cas fermeture anticipée (synchro ou pas). L'application attendant la fin du Thread pour se fermer. "freeOnTerminate := true;" ne semblant par contre n'avoir aucun effet dans ce cas.
|
|
Cette discussion est classée dans : thread, principale, fiche, liberation
Répondre à ce message
Sujets en rapport avec ce message
Frame et thread [ par stailer ]
Salut tout le monde !J'ai un problème avec les threads et j'aurai besoin d'une explication :Si je lance un thread avec une fonction sur une fiche il y
Programme avec identification utilisateur [ par orelien ]
Bonjour,J'ai créé une application qui demande une identification par un mot de passe. Le programme est alors lancé sur la fiche "mot de passe" et une
Utiliser fiche externe [ par kalerzz ]
Bonjour tout le monde, Voila alors en fait je souhaiterais savoir comment utiliser des fonctions dans ma fiche principale qui ont été déclarées dans
changer de fiche principale [ par vrachid ]
bj a tousvoila j'ai crée une application dont il y a 4 fiche la première fiche qui est la principale est un formulaire de renseignement en lecomplétan
Aligner une fiche par rapport à un TEDit [ par codial ]
Bonjour,j'ai une fiche principale avec un TEDit et je cherche à aligner une autre fiche (Une liste à de sélection de produits) au dessus juste au dess
TcomPort & Thread [ par ARCANELEC ]
Bonsoir à tous ! Je suis en train de faire une appli qui à besoin de scruter des ports Com, J’ai donc pensé à Tcomport, mais le problème c’est que l
fiche non MDI, qu'est-ce que c'est? [ par arno15 ]
Bonjour.J'ai un problème de création de form. J'ai une form principale qui est de style 'fsMDIForm'.Je souhaite créé une autre form qui doit prendre p
Application MDI et sauvegarde [ par christophedlr ]
Bonjour à tous,Dans mon programme, j'utilise ls système d'application MDI.Mon problème, c'est que la fiche MDI enfant est créer dynamiquement(créer ju
TServerSocket : Limiter la création de Thread ssi adresse IP valide [ par donrolando ]
Bonjour, Je cherche à savoir comment on peux empécher le composant TServerSocket en mode threadblocking de crée un thread TserverClientThread, par exe
Threads et events [ par Danonne ]
Salut a tous.Après de nombreuses recherches sur divers sites et forums, je n'ai pas réussi à trouver une réponse (claire et précise) à ma question exi
Livres en rapport
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|