Terminer un thread

Signaler
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Rebonjour

J'ai crée un thread de la manière suivante:

HANDLE hThread = CreateThread(0, 0, ThreadProc, &ts, 0, &dwThreadId);


et je voudrais l'arrêter avant qu'il ne soit terminé mais

TerminateThread(hThread, 1);


ne marche pas

Comment puis-je faire?

Merci

6 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
TerminateThread devrait fonctionner mais reserve aux extremes urgences. Si tu pouvais verifier un indicateur dans ton thread pour qu'il retourne une valeur 'proprement' serait mieux.
Je vais verifier TerminateThread.
BruNews, ciao...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
oui c'est ce que j'avais fait, mais ca me semblait bizarre qu'il y ait une fonction SuspendThread qui marche très bien et qu'on ne puisse pas utiliser TerminateThread.
Merci quand même
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Je viens de faire un mini prog de test avec un boucle infinie dans le thread, TerminateThread le stoppe sans probleme.
Si tu veux que je le pose, tu le dis.
BruNews, ciao...
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
SuspendThread a un role different, il met en pause le thread mais ne le termine pas, on peut le relancer au point ou on l'a stoppe.
BruNews, ciao...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Oui j'avais bien compris l'utilité de SuspendThread, mais je dis juste que dans le meme ordre d'idées, on peut imaginer une fonction qui permette d'arrêter un thread.
J'ai essayé comme tu dis sur un mini prog et effectivement ca marche, il doit y avoir d'autres intéractions dans mon programme qui font que ca ne marche pas, je vais regarder ce que donne GetLastError() tiens...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Non ce n'était même pas la peine puisque l'appel n'échoue même pas; tant pis je vais faire avec l'autre méthode, en plus si tu dis qu'elle est meilleure...