Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
770 connectés 

  FORUM HardWare.fr
  Programmation

  multi-threading en Visual C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

multi-threading en Visual C++

n°33401
guillot
Posté le 21-05-2001 à 11:58:55  profilanswer
 

Bonjour,
 
Je reviens avec mon problème de client FTP...
D'abord merci à ceux qui m'ont aidé pour l'intégration de multi-threading dans mon application.
 
Maintenant que ça marche, j'ai un autre problème. J'utilise la fonction AfxBeginThread() pour créer mes threads.
L'ennui c'est que j'aurais besoin de connaitre le "handle" de mes threads créés pour ainsi pouvoir les stopper lorsque je le souhaite.
De plus, j'aimerai savoir s'il était possible de savoir quand un thread se termine ? et comment exécuter une action à la fin d'un thread ?
 
Merci d'avance

mood
Publicité
Posté le 21-05-2001 à 11:58:55  profilanswer
 

n°33421
wpk
Posté le 21-05-2001 à 13:40:17  profilanswer
 

je pense que vouloir interompre tes thread autrement qu'en sortant de leur fonction principale n'est pas une idee geniale. La solution propre consiste a avoir un booleen qui peut etre modifie en dehors du thread et qui te permet de sortir de ton thread en douceur.

n°33423
BENB
100% Lux.
Posté le 21-05-2001 à 13:49:05  profilanswer
 

wpk > c'est meme la seule methode fiable...
 
sinon pour le handle il doit etre renvoye par la methode qui cree la thread. De plus il y a certainement une methode pour savoir dans quel thread tu es (pthread_self en POSIX)...
 
Dans wxWindows il y a une classe wxThread qui comporte un membre statique Self me semble-t-il...
 
cesi dit vouloir arreter un thread de l'exterieur est une mauvaise idee... Il faut qu'il s'arrete de lui-meme...

n°33511
SoWhatIn22
Posté le 21-05-2001 à 17:40:17  profilanswer
 

Pour la synchronisation des threads sous windows, tu peux utiliser les evenements: Avant de quitter le thread, tu lui fait mettre un evenement windows à l'etat signalé. Pour savoir si le thread est fini, tu fais alors un waitForSimpleObject sur l'evenement en question.
C'est souvent comme cela que c'est fait sous windows. En fait cette méthode te permet aussi d'attendre plusieurs threads en faisant un waitForMultipleObjects.
Avec les evenements, tu es quasi sûr de ne pas avoir de conflits d'acces sur une variable (ce qui peux tres vite arriver le jour ou ton prog tourne sur un bi-pro par ex).
 
a+

n°33522
guillot
Posté le 21-05-2001 à 18:39:36  profilanswer
 

Merci pour tous ces conseils !
 
En ce qui concerne l'arrêt de mon thread par un évènement extérieur, c'est parce que c'est dans le cadre d'un client FTP.
En fait lorsque j'effectue un téléchargement par exemple, je veux que l'utilisateur puisse le stopper quand il le souhaite, et ce sans être obligé d'attendre la fin. Mon téléchargement est contenu dans un thread, d'où l'idée de le stopper à tout moment !
 
En revanche, en ce qui concerne le waitForSimpleObject, si possible j'aimerai avoir + d'infos SVP ? :)
 
merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  multi-threading en Visual C++

 

Sujets relatifs
[Visual C++] LIBCD.lib(wincrt0.obj) : error LNK2001:[Visual Basic] probleme avec DriveListBox
ou puis-je trouver visual studio pro 6.00 ???PB requete multi critère sous acess
Visual C++ serait il fou ?Changer le port FTP en Visual C++
Tutorial sur le multi-threading en Visual C++Debutant pur en Visual c++
Plus de sujets relatifs à : multi-threading en Visual C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR