inclure un thread dans une class ? - C++ - Programmation
MarshPosté 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 :
class Client
{
public :
Client ();
unsignedlong thread;
DWORD WINAPI Thread (void*)
};
)
mais si je veux appeler le thread dans le constructeur (par ex)
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 ...
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 :
)
mais si je veux appeler le thread dans le constructeur (par ex)
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 ...