J'ai réussi à avoir une donnée membre de ma classe client à laquelle je peux acceder depuis les 2 threads. Pour ça, je crée ma classe client avant de lancer le thread.
Code :
- void CThread::start()
- {
- CClient *client = new CClient;
- Thread *threadClient = new Thread(new ThreadStart(NULL, client->threadProc));
- threadClient->Start();//lancement du thread;
- }
|
Le souci, c'est que ma classe client dérive de TcpClient. Et je peux pas me servir de ses méthodes car threadProc (la fonction appelée au lancement du thread) est static et ne peut appeler que du static.
Code :
- void CClient::threadProc()
- {//fonction appelée a la creation du thread
- Console::WriteLine("je suis le second thread, bonjour" );
- client->gestionClient();//la il dit qu'il connait pas client, normal
- Connect("127", 15000);//illegal call of a non-static member function
- }
|
Donc soit j'ai une variable pour communiquer entre threads, soit j'utilise les méthodes de TcpClient. Comment combiner les 2 ?
J'ai pensé à faire une classe clientHandler qui contiendrait les données à partager et dont hériterait CClient, mais elle hérite déjà de TcpClient et c'est pas possible qu'une classe __gc hérite de plus d'une classe __gc ou d'une classe non __gc. Je suis coincé .
Message édité par Bleuarff le 20-01-2005 à 19:25:26
---------------
©2008 Bleuarff Corp.