Bonjour,
Voilà, j'utilise boost pr créer des threads et je créé un objet dispatcher pr exécuter un traitement selon le msg reçu comme suit :
**********************************************************
DispatchedMessage *dispatcher = new DispatchedMessage(this, message);
while (!stop)
{
//On recoit un nouveau message de manière asynchrone
string message = receiveMessage();
if( message != "" )
{
dispatcher -> setMessage(message);
func = boost::bind( &DispatchedMessage::analyser, dispatcher );
thrd = new boost::thread ( func );
}
}
delete thrd;
delete dispatcher;
***********************************************************
Pour le dispatcher, j'ai besoin de la chaine 'message' (utile pour le traitement du thread) c'est pour ça que je fais un setMessage pour ne pas réinstancier un nouvel objet DispatchedMessage à chaque boucle. Puis j'instancie un nouveau thread à chaque message reçu qui exécute une fonction de la classe DispatchedMessage.
Premier point : est-ce une bonne façon de faire ?
Deuxième point : pour delete les allocation de 'thrd' je stocke tous les pointeurs dans un vecteur et j'efface le pointeur lorsque le thread est terminé ?
Merci pour vos réponses!
Jo