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

  FORUM HardWare.fr
  Programmation

  [C++] Comment créer un thread ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Comment créer un thread ?

n°10495
Gertom
Posté le 20-01-2001 à 22:34:49  profilanswer
 

Tout est dans le sujet.
J'ai VC++6 Pro
J'ai essayé la fonction API CreateThread
Mon problème c que cette fonction veut un pointeur vers une fonction que le thread doit executer et que je sait pas comment lui dire quelle fonction il doit executer.

mood
Publicité
Posté le 20-01-2001 à 22:34:49  profilanswer
 

n°10497
verdoux
And I'm still waiting
Posté le 20-01-2001 à 22:50:57  profilanswer
 

Ben si tu sais pas quelle fonction exécuter, pourquoi crées-tu un thread :confused:

n°10498
Gertom
Posté le 20-01-2001 à 22:52:45  profilanswer
 

je sais quelle fonction executer mais je sais pas comment dire au thread qu'il doit executer cette fonction.

n°10499
verdoux
And I'm still waiting
Posté le 20-01-2001 à 22:58:49  profilanswer
 

Tu mets le nom de la fonction dans l'appel à CreateThread.

 

--Message édité par Verdoux--

n°10501
Gertom
Posté le 20-01-2001 à 23:09:41  profilanswer
 

voilà le pb :
le code :
void Test()
{
 __asm
 {
ssxor eax,eax
boucle:
ssinc eax
ssjno boucle
 }
}
 
void CTestCPUDlg::OnLancerTest()ss
{
 CreateThread(NULL, 100, Test, NULL, NULL, NULL);ss
}
 
et l'erreur :
error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (void)' to 'unsigned long (__stdcall *)(void *)'
ssssssssNone of the functions with this name in scope match the target type

n°10502
verdoux
And I'm still waiting
Posté le 20-01-2001 à 23:17:49  profilanswer
 

Tu changes le prototype de Test en:
DWORD Test(LPVOID parameter)
 
Et l'appel en:
CreateThread(NULL, 100, (LPTHREAD_START_ROUTINE) Test, NULL, NULL, NULL);

n°10503
Gertom
Posté le 20-01-2001 à 23:24:28  profilanswer
 

OK merci, ca marche.
Mais maintenant, j'aimerais savoir comment faire pour mettre dans le thread un code qui affiche qqchose dans un textbox de la fenêtre.
 
 UpdateData(TRUE);
 m_val=100;
 UpdataData(FALSE);
 UpdateWindow();
 
donne :
error C2065: 'UpdateData' : undeclared identifier
error C2065: 'm_val' : undeclared identifier
error C2065: 'UpdataData' : undeclared identifier
error C2660: 'UpdateWindow' : function does not take 0 parameters

n°10506
Roswell_
Posté le 21-01-2001 à 00:29:54  profilanswer
 

moi je fais ça:
void myThread(void *pvoid)
{
 while(1)
 {
ssSleep(20);
ssInvalidateRect(hWnd,NULL,FALSE);
 }
}
.....
.....
switch (message)
{
 case WM_CREATE:
ss_beginthread(myThread,0,NULL);
 return 0 ;
...
 
 
Moi c'est pour un prog opengl donc le thread est executé tout le temp.


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

  [C++] Comment créer un thread ?

 

Sujets relatifs
[VB / ADO / Multithreading] Faire un threadLibrairieJavascript : Comment en creer une et faire appel au fonction
Plus de sujets relatifs à : [C++] Comment créer un thread ?


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