Bonjour à tous,
Je cherche à utiliser des threads dans mon appli et je vais me tourner vers boost. Pour passer des paramètres à la fonction de mon thread, j'ai besoin d'utiliser boost::bind (ici). Or, je n'y arrive pas, ne comprenant pas bien le méchanisme. Pourriez vous m'aider ?
Fonction du thread :
Je voudrais faire des threads comme ca (voir le lien) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class Profile { /// ... template <class T> bool ComputeRadiometries( boost::shared_ptr< TTImage <T> > image , const eInterpolatorType type_interpolator=BICUBIC ) { /// ... } };
Le problème, c'est donc la construction du thread. Je ne vois pas du tout comment y arriver.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 boost::shared_ptr<Profile> p2 ( new Profile(origine+(double)i*width_sur_nb_fois_wdir,rect->GetHeightDirection(),MPPParameters_.ProfilesNbPoints_,MPPParameters_.ProfilesDistancePoints_ ) ); boost::shared_ptr<Profile> p3 ( new Profile(origine+(double)(-i)*width_sur_nb_fois_wdir,rect->GetHeightDirection(),MPPParameters_.ProfilesNbPoints_,MPPParameters_.ProfilesDistancePoints_ ) ); boost::thread thrd1(boost::bind(????)); boost::thread thrd2(boost::bind(????)); thrd1.join(); thrd2.join();
J'ai essayé ça, mais ça ne compile pas :
Merci de vos pistes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 boost::function<bool (Profile*, boost::shared_ptr< TTImage <unsigned char> >, eInterpolatorType)> f; f = &Profile::template ComputeRadiometries<unsigned char>; // compile pas !
Partager