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 : S�lectionner tout - Visualiser dans une fen�tre � part
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; };J'aurais voulu eglement rajouter comme traitement l'arret (que je ne sais malheureusement pas comment faire :/)
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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 ) { }
Avez vous une id�e sur comment je pourrais proceder ?
Merci d'avance
Guitou
Partager