begin process at 2012 05 30 13:46:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Un Thread qui ne va pas :-(


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Un Thread qui ne va pas :-(

lundi 19 décembre 2005 à 07:45:08 | Un Thread qui ne va pas :-(

dbiare

Bonjour tout le monde J’aimerais faire un « thread » sous Visual C++6. D’après ce que j’ai pu comprendre (après lecture) je déclare (dans un objet dérivé de CDialog) la fonction (qui sera mon unité d’exécution) suivante : UINT CThreadDlg::ThreadFunc(LPVOID pParam) { …… return x; } Je (toujours d’après ce que j’ai compris) la déclare au système comme suivant : void CThreadDlg::TestThread() { AfxBeginThread(ThreadFunc,(LPVOID)&variable); } Mais rien à faire, j’obtient toujours la même erreur !!! error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)' Or il est bien indiqué (toujours dans ce que j’ai pu lire) qu’il faut déclarer la fonction « ThreadFunc » comme étant « unsigned int (void *) » Arrgggg!!!! Quelqu’un aurait-il une idée ? Merci
lundi 19 décembre 2005 à 08:44:14 | Re : Un Thread qui ne va pas :-(

vangeurmasker

Membre Club
J'ai eu des prolemes du genres. Essaie de sortir ta fonction ThreadFunc de ta classe. Je ne sait pas pourquoi mais chez moi c'était ça le problème. Si ta besoin des variables de ta classe tu passe un pointeur a ton thread.

lundi 19 décembre 2005 à 11:14:37 | Re : Un Thread qui ne va pas :-(

dbiare

Ok maintenant ça marche Grand Merci ! Mais j’ai un autre petit prob… Dans mon objet dérivé de CDialog, je déclare : void CThreadDlg::TestThread() { AfxBeginThread(ThreadFunc,(LPVOID)&var); } J’ai aussi déclaré une variable (int) var (variable que je passe à l’aide d’un pointeur de type void), laquelle je veux incrémenter lors de mon thread Comme fonction globale je déclare mon unité d’exécution : UINT ThreadFunc(LPVOID pParam) { int *pi=(int*)pParam; (*pi)++; return 0; } Mon prob c’est que, je ne rentre que une seule fois dans mon thread et je dois rappeler la fonction void CThreadDlg::TestThread() {…} pour re-rentrer dans mon thread ?? Une idée peut être ? Merci
lundi 19 décembre 2005 à 11:33:21 | Re : Un Thread qui ne va pas :-(

vecchio56

Administrateur CodeS-SourceS
C'est un problème qu'on a déja eu plein de fois. Si tu veux laisser la méthode dans ta classe, il faut la mettre en static C'est normal que ton thread est lancé qu'une seule fois. Pourquoi, et comboi de fois veux tu réentrer dans le thread?
lundi 19 décembre 2005 à 13:10:14 | Re : Un Thread qui ne va pas :-(

dbiare

Si j’ai à peu prés compris le concept, une file d’attente est crée (géré par un algorithme) et un quantum de temps est alloué pour chaque unité d’exécution. Ici, dans mon application je crée une Dialog Box, première unité d’exécution, et j’aimerais en crée une autre (d’unité d’exécution) car j’ai besoin de contrôler un automate et il me faut la possibilité (à tout moment) d’accéder à des boutons de ma Dialog Box pour stopper le process, le paramétrer, etc. Le Thread que je veux générer me servirait à piloter l’automate. J’aimerais donc y entrer (et sortir) en permanence… Tu comprends ce que je veux ? (je m’exprime pas toujours très bien ;-\)
lundi 19 décembre 2005 à 13:28:16 | Re : Un Thread qui ne va pas :-(

vecchio56

Administrateur CodeS-SourceS
Effectivement j'ai pas compris...Si tu veux 2 threads, tu peux très bien les créer à la suite
lundi 19 décembre 2005 à 14:33:25 | Re : Un Thread qui ne va pas :-(

dbiare

J’ai manqué de discernement ! J’aurais pu être plus perspicace mais ça y est j’ai tout (enfin je crois) compris !!! Mieux vaut tard que jamais :-)! En tout cas merci pour le coup de la déclaration ‘static’ car la dessus je commencer à désespérer. Merci encore


Cette discussion est classée dans : void, thread, toujours, déclare, threadfunc


Répondre à ce message

Sujets en rapport avec ce message

PROBLEME DE THREAD (CreateThread -->ERROR) [ par neub ] Salut à tous, j'ecris un module de visionnement d'image etje souhaiterai pouvoir stopper ma fonction OnPlay au moment voulu mais j'ai un pb a la creat exemple de thread [ par dambeaufort ] bonjour,Je ne comprend pas trés bien comment creer un thread.Est ce que quelqu'un d'entre vous pourrais me fournir un source qui permettent d'avoir 2 thread et activeX avec MFC [ par lamalice83 ] bonjour,j'essaye de créer un thread à l'intérieur d'une classe, mais je n'arrive pas à l'associer avec sa fonction de routine:Dans le CLASSCtl.h :afx_ Probleme thread linux ... [ par Tidam ] Voila mon probleme, quand je ve compiler il me sort une erreur : passing `void (*)(void *)' as argument 3 of `pthread_create(pthread_t *, const pthrea MFC, thread, callback, etc... La totale ! [ par SW_87 ] Bonjour , Je reprends mon problème car apparemment je me suis mal exprimé . J'ai créé une application "MFC AppWizzard (exe)" sous VC++ 6.0. que je n thread et options de compilation [ par khayyam ] bonsoir tout le mondeje cherche à utiliser les threads avec devc++je créé donc un tread threadName = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)thr Help (threads) [ par loicus ] Bon, bhen voila.. j'essaye de faire un threadj'aimerais ouvrir la fonctions LCD_BootScreen() dans un thread, donc j'utilise cette fonction :thboot= Cr Help (threads) [ par loicus ] Bon, bhen voila.. j'essaye de faire un threadj'aimerais ouvrir la fonctions LCD_BootScreen() dans un thread, donc j'utilise cette fonction :thboot= Cr Probleme thread [ par PunkDude424 ] J'ai un probleme avec les threadJ,ai un server et jessai de créer un thread a chaque fois quun client se connecte, mais sa fonctionne pas.J,ai essayer thread [ par dev_hy ] voila je veux utiliser les threads sous windows. alors j'ai crée un classe thread, dans la méthode de créeation de thread toute est bon mais il m'affi


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,775 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales