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

  FORUM HardWare.fr
  Programmation

  [Visual C++] creation de thread

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Visual C++] creation de thread

n°16240
bilbobman
Posté le 27-02-2001 à 21:56:17  profilanswer
 

si quelqu'un pouvait m'expliquer comment cree un thread en c++ j'essai avec la fonction :AfxBeginThread mais je comprend pas trop les arguments a passer  
 
merci d'avance

mood
Publicité
Posté le 27-02-2001 à 21:56:17  profilanswer
 

n°16273
SoWhatIn22
Posté le 28-02-2001 à 09:01:49  profilanswer
 

hum... si tu comprends pas trop les arguments à passer, j'ai peur que ce ne soit parce que tu n'as pas bien compris le mécanisme des threads. M'enfin bon: un petit eclaircissement s'impose. Alors on prend la doc et on regarde ce qui est marqué :)
 
 
CWinThread* AfxBeginThread(  AFX_THREADPROC pfnThreadProc,
    LPVOID pParam,
    int nPriority = THREAD_PRIORITY_NORMAL,
    UINT nStackSize = 0,
    DWORD dwCreateFlags = 0,
    LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );
 
 
pfnThreadProc:
--------------
pointeur sur la fonction qui sera executée dans le thread. Ne peut pas être NULL
(de toute façon, faire un thread avec une fonction NULL... autant ne rien faire :))
Cette fonction doit être du type suivant:
 
 UINT MyControllingFunction( LPVOID pParam );
 
(rappel: LPVOID = void *)
 
 
pParam:
--------------
paramètre à passer en argument à la fonction qui sera executée dans le thread.
typiquement, si tu as plusieures paramètres à passer à la fonction qui sera
executée dans le thread, tu définies une structure qui contient tous ces aruments.
Puis tu défini la fonction pricipale du thread (pfnThreadProc) comme ayant en
paramètre un void *, sur lequel tu feras un casting explicite dans le format de
ta structure.
 
 
exemple:
 
struct toto{
int a;
float b;
};
 
UINT MyControllingFunction( LPVOID pParam )
{
int aa = (toto *) pParam->a;
int bb = (toto *) pParam->b;
}
 
 
nPriority:
--------------
ben c la priorité du thread... tu laisses celle par défaut, c en général
suffisant. Si vraiment ca va pas, tu changeras...
 
pour info:
Priority Meaning  
THREAD_PRIORITY_ABOVE_NORMAL Indicates 1 point above normal priority for the priority class.  
THREAD_PRIORITY_BELOW_NORMAL Indicates 1 point below normal priority for the priority class.  
THREAD_PRIORITY_HIGHEST Indicates 2 points above normal priority for the priority class.  
THREAD_PRIORITY_IDLE Indicates a base priority level of 1 for IDLE_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base priority level of 16 for REALTIME_PRIORITY_CLASS processes.  
THREAD_PRIORITY_LOWEST Indicates 2 points below normal priority for the priority class.  
THREAD_PRIORITY_NORMAL Indicates normal priority for the priority class.  
THREAD_PRIORITY_TIME_CRITICAL  
 
 
nStackSize
--------------
spécifie la taille de la pile (en octets) du thared.
Tu laisses la valeur par défaut = 0 -> même taille que le processus qui créé ce thread
 
 
 
dwCreateFlags:
--------------
 
Flag pour le status du thread. 2 valeurs possibles:  
 
CREATE_SUSPENDED : le thread est créé à l'état suspendu. Il faudra ensuite le lancer...
0                : le thread est démarré immédiatement apres sa création
 
dans le doute, tu laisses la valeur par défaut.
 
 
et puis pour le reste tu laisses les valeurs par défaut.
Et puis si c pas clair, et ben précises un peu ce que tu ne comprends pas.

n°16291
bilbobman
Posté le 28-02-2001 à 10:31:22  profilanswer
 

merci gars , c juste ce dont je revait

n°16310
Roswell_
Posté le 28-02-2001 à 11:59:27  profilanswer
 

sinon moi je fais _beginthread(myThread,stack_size,pParam);
 
avec
myThread pointeur de fonction
 
stack_size
cf SoWhatIn22
 
pParam
cf SoWhatIn22


---------------
http://www.cheata.net le site qui vous donne la banane!
n°16318
bilbobman
Posté le 28-02-2001 à 13:18:38  profilanswer
 

merci je note mais la ca marche avec AfxBeginThread  donc je touche pu :=)
enfin je note quand meme , ca peut toujour servir
merci encore

n°16320
SoWhatIn22
Posté le 28-02-2001 à 13:23:40  profilanswer
 

_beginthread, à mon avis quand même c mieux, parce que c indépendant des MFC.
Ca fait partie de l'API win32, et donc c utilisables avec plus de compilos...
Les MFC c peut etre bien, mais moins j'en utilise, mieux je me porte :)

n°16356
bilbobman
Posté le 28-02-2001 à 17:04:39  profilanswer
 

oki je vais essayer avec beginthread alors , je ete fais confience , enfin les mfc c bien pratique quand meme (a mon gout )


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

  [Visual C++] creation de thread

 

Sujets relatifs
Pourquoi ça marche pas???? (ODBC et Visual C++ 6)La fonction "DIR" en visual basic ????
Création de drivers ODBC pour une base propriétaire.Creation OCX en VC++
VISUAL BASIC 6 : comment faire un lien vers une url ?VISUAL BASIC : recherche desesperement petite application avec BDD...
[Visual C++] problème pour ouvrir un prog externe grace a shellexecuteQue peut on faire avec Visual Basic C++ ?
visual basic : keyDown ?visual basic : ya t'il un moyen de rechercher les ports libres ?
Plus de sujets relatifs à : [Visual C++] creation de thread


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