Classe gestion de thread - Capter evenement stop
Bonsoir,
J’implémente sur Boost::thread une classe mère de façon a gérer facilement mes threads sous formes d'objets.
Chaque objet voulant être threadé hérite de cette classe et redéfinie une méthodes propre a son traitement. Il peut également ajouter un process d'init et de fin de traitement.
Voici le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class Task
{
public:
Task();
~Task();
virtual void taskRun ( void ) = 0;
virtual void taskInit ( void );
virtual void taskTerminate( void );
void taskStart ( void );
void Exec ( void );
void Wait ( void );
protected:
private:
boost::thread mThread;
}; |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
void Task::Exec( void )
{
taskInit();
taskStart();
taskTerminate();
}
void Task::Wait()
{
mThread.join();
}
void Task::taskInit( void )
{
}
void Task::taskStart( void )
{
cout << "Task::taskStart" << endl;
mThread = boost::thread( boost::bind( &Task::taskRun, boost::ref(*this) ) );
}
void Task::taskTerminate( void )
{
} |
J'aurais voulu eglement rajouter comme traitement l'arret (que je ne sais malheureusement pas comment faire :/)
Avez vous une idée sur comment je pourrais proceder ?
Merci d'avance
Guitou