Kill thread

JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 - 2 sept. 2008 à 10:55
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 - 2 sept. 2008 à 17:33
Bonjour,

J'aimerais savoir par quelle moyen je peut terminer un thread aprés un certain temps d'inactivité...

4 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 sept. 2008 à 14:05
Salut,

Tu peux préciser ta question s'il te plait ?

Notamment :
"un certain temps d'inactivité"

Un thread dans un Sleep ?
Un thread dans un appel bloquant (scanf, GetMessage, WaitForSingleObject...) ?
0
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
2 sept. 2008 à 14:49
Salut,

En fait je créé un thread dans lequel j'effectue des accès en écriture sur un disque dur endommagé et j'aimerais stoper le thread lorsque le programme bloque depuis plus de 1minute à cause d'une défaillance du disque.
 
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 sept. 2008 à 17:29
Dans ton thread secondaire, tu dois pouvoir mettre à jour régulièrement une variable globale (Attention à la gestion de la concurrence d'accès).

Dans ton thread principal, à l'aide d'un timer, tu peux lire périodiquement la variable globale. Si elle n'a pas été mise à jour depuis un certain temps, tu peux killer le thread avec Terminatethread. Attention de bien lire la doc : c'est une fonction violente.

Tu peux aussi utiliser une solution plus élégante avec un thread supplémentaire qui attend des évènements émis par le thread de lecture. Le thread attendant le thread de lecture utiliserais WaitForSingleObject, avec un timeout. En sortie de cette fonction, tu regardes si la cause de sortie est le timeout ou l'évènement. Si c'est l'évènement, tu boucle sur ton WaitForSingleObject. Si c'est le timeout, c'est que le thread de lecture n'a pas déclenché d'évènement depuis un moment -> tu le kill.
0
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
2 sept. 2008 à 17:33
Merci pour ces infos... je teste demain

salut.
0
Rejoignez-nous