Accéder à un thread créé ??

Accéder à un thread créé ?? - C++ - Programmation

Marsh Posté le 14-04-2003 à 11:37:54    

Bon voila, j'ay arrive pas !!! dès que je suis hors de la fonction d'où j'appelle mon thread, le thread étant lancé (vérifié), impossible, même en ayant utilisé un pointeur sur ce thread global, d'y accéder, ca me met automatiquement une sale erreur EAccessViolation :(
 
J'ai aucune idée de comment faire, pour moi si on a un pointeur en tant que variable globale, pointant sur un objet qui existe, où est le pb :??:
 
PS j'utilise des classes dérivées de TThread, parce que j'ai pas réussi à faire autrement :D

Reply

Marsh Posté le 14-04-2003 à 11:37:54   

Reply

Marsh Posté le 14-04-2003 à 13:24:25    

je sais pas si ça peut t'aider, mais je sais qu'en C# il existe un truc qui s'appelle ThreadPool. ça te permet de mettre tes thread dans une file, et d'y acceder facilement.
reste à savoir si ça existe en C++...

Reply

Marsh Posté le 14-04-2003 à 13:40:57    

ben disons j'ai vu qqch à propos d'un "cache des threads" mais je vois pas des masses en quoi ca aide, ni comment utiliser ca ...

Reply

Marsh Posté le 14-04-2003 à 14:09:13    

LeMakisar2 a écrit :

Bon voila, j'ay arrive pas !!! dès que je suis hors de la fonction d'où j'appelle mon thread, le thread étant lancé (vérifié), impossible, même en ayant utilisé un pointeur sur ce thread global, d'y accéder, ca me met automatiquement une sale erreur EAccessViolation :(
 
J'ai aucune idée de comment faire, pour moi si on a un pointeur en tant que variable globale, pointant sur un objet qui existe, où est le pb :??:
 
PS j'utilise des classes dérivées de TThread, parce que j'ai pas réussi à faire autrement :D


 
je crois qu'avant de continuer, tu devrais faire une petite pause et te renseigner un peu sur l'héritage en C++ et sur le fonctionnement d'un thread. Je ne crois pas me tromper si je dis que tu ne comprends pas ce que tu es en train de coder... Alors avnt de poster encore 42 questions, essaye de comprendre les bases.

Reply

Marsh Posté le 15-04-2003 à 07:56:54    

Disons que pour moi, une fois qu'un objet est créé, s'il n'est pas détruit et qu'on a un pointeur dessus, on peut normalement y accéder ... apparemment pour les threads c pas le cas :D
Enfin bref, toujours est il que j'ai utilisé un TEvent pour ma synchronisation, ca marche, mais reste à savoir si les temps d'attente vont pas me faire chier :)

Reply

Marsh Posté le 15-04-2003 à 09:56:04    

sowhatin22 a écrit :


 
je crois qu'avant de continuer, tu devrais faire une petite pause et te renseigner un peu sur l'héritage en C++ et sur le fonctionnement d'un thread. Je ne crois pas me tromper si je dis que tu ne comprends pas ce que tu es en train de coder... Alors avnt de poster encore 42 questions, essaye de comprendre les bases.


 
tu peux detailler un peu plus ? car pour moi lorsque tu crees un thread , tu peux avoir acces a toutes les variables de ton thread pere (c le principe du thread , partage du meme contexte != processus) a condition de passer ce qui t interesse dans la fonction de thread (LPVOID lpParam) , en general quand je cree un thread, ca se passe dans une classe et donc pour accedr a partir de mon thread aux variables de l objet, je passe en parametre a mon thread un pointeur sur mon objet.
 
 
Je te demande ca car j ai rencontré un pb sous linux, dansle thread principal si je faisais un sendmessage (genre un keyevent ou autre) ca marchait et si je le faisais dans un thread auxiliaire ca ne marchait pas.

Reply

Marsh Posté le 15-04-2003 à 12:45:45    

oui ben j'utilise un objet TThread, et une fois créé en théorie je devrais pouvoir y accéder (j'ai un pointeur défini comme variable globale dessus), mais si j'utilise un resume ou suspend autre partt que ds la fonction où je le crée et je le lance, ca foire (pourtant le thread existe tjrs, je sors pas de ma fonction ca c sur).
 
Enfin bref, de toutes facons ca marche donc voila :)
Mais c'est histoire de pas mourrir idiot quoi ... :/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed