inclure un thread dans une class ?

inclure un thread dans une class ? - C++ - Programmation

Marsh Posté le 30-01-2005 à 13:52:27    

ben voilà,
 
je voudrais creer un prog client/serveur avec un serveur pouvant gerer plusieurs clients
 
j'ai donc une class Serveur ayant une liste de class Client
 
seulement, le serveur doit attendre des infos de n'importe quel client a n'importe quel moment, il me faut donc un thread pour chaque client, mais ce thread doit pouvoir se servir des infos du client auquel il est rattaché
 
donc je doit inclure la fonction thread dans ma classe client :
 

Code :
  1. class Client
  2. {
  3. public :
  4.   Client ();
  5.  
  6.   unsigned long thread;
  7.   DWORD WINAPI Thread (void*)
  8. };

)
 
mais si je veux appeler le thread dans le constructeur (par ex)
 

Code :
  1. DWORD WINAPI Client::Thread (void*)
  2. {
  3. return true;
  4. }
  5. Client::Client ()
  6. {
  7. CreateThread (NULL, 0, Thread, NULL, NULL, &thread);
  8. }


 
le compilo (borland c++ 5.01) m'affiche une erreur :
 
Member function must be called or its address taken
 
et
 
Type mismatch in parameter 'lpStartAddress' in call to __stdcall CreateThread (_SECURITY_ATTRIBUTES *, unsigned long, unsigned long (__stdcall *)(void *), void *, unsigned long, unsigned long *)
 
j'arrive pas tres bien a comprendre parce que si je declare le thread en global, il n'y a plus aucun probleme
 
mais ca ne m'arrange pas parce que dans ce cas il est impossible de faire communiquer mon thread avec la class Client (dont l'objet est quelques part dans la liste du serveur)
 
donc voila
 
si quelques specialistes des threads pouvaient éclairer ma lanterne ...

Reply

Marsh Posté le 30-01-2005 à 13:52:27   

Reply

Marsh Posté le 30-01-2005 à 13:56:36    

Reply

Sujets relatifs:

Leave a Replay

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