2011-01-25 2 views
2
class accel{ 
public: 
    accel(int threads, string params); 

private: 
    void getfile(int from, int to); 
    void download(int threads); 
}; 


void accel::download(int threads){ 
    boost::thread g(&getfile(0, 1)); //<<<< 
} 

Donne une erreur '&' requiert une valeur l. Je l'ai fait par exemple. Comment le faire fonctionner?Boost. Multithreading

Répondre

6
boost::thread g (boost::bind(&accel::getfile, this, 0, 1)); 
+0

Et comment créer un thread pour attendre que les autres se ferment avant de se fermer? Mutexes? – gemexas

+0

@gemexas: Faites une nouvelle question. – Puppy

2

getfile retours void - vous essayez de prendre l'adresse d'une variable de type void. Cela n'a aucun sens. Vous devrez utiliser un objet fonction lié - consultez boost :: bind.