Hello,
Est-il possible de créer un thread Boost en lui filant la fonction membre d'un objet (fonction non statique, donc) ?
Ça ne marche pas chez moi, et je n'arrive pas pas à trouver des infos sûres sur le sujet.
Merci.
Hello,
Est-il possible de créer un thread Boost en lui filant la fonction membre d'un objet (fonction non statique, donc) ?
Ça ne marche pas chez moi, et je n'arrive pas pas à trouver des infos sûres sur le sujet.
Merci.
Salut,
Oui c'est possible, par exemple :
Cf. le constructeur en question de boost::thread.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class my_class { public: my_class() : t( &my_class::f, this ) {} void f() {} private: boost::thread t; };
Ou au pire :
Cf. cet autre constructeur de boost::thread.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class my_class { public: my_class() : t( boost::bind( &my_class::f, this ) ) {} void f() {} private: boost::thread t; };
MAT.
+1 avec Mat007 aussi.
Ce qu'il faut retenir, c'est qu'il y a un this implicite avec une fonction membre non statique.
Boost.Thread propose directement le bind, j'avais oublié !
Pourquoi pas !![]()
Partager