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 :
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 )
  {
     /// ...
  }
};
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
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();
Le problème, c'est donc la construction du thread. Je ne vois pas du tout comment y arriver.

J'ai essayé ça, mais ça ne compile pas :
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 !
Merci de vos pistes