Le 30/12/12 19:20, Philipp Kraus a écrit :
To create and add a new thread to a thread_group you should useAm 30.12.2012 um 12:53 schrieb Szymon Gatner:Hi Philip, 2012/12/30 Philipp Kraus <philipp.kraus@flashpixx.de>:Which structure must be implementated for the class myThread and from which class must be derived?no need for derivation. Just implement operator() for your class like so: class myThread { public some methods void operator()() { // this will run in new thread } private some properties }I get with this use compiler errors, this code boost::thread_group l_group; for(std::size_t i=0; i < 5; ++i) l_group.join_all(); shows: error: no match for call to '(boost::thread_group) (myThread)' on the loop line I have tested l_group( boost::thread(myThread) ); and creates the error: error: no match for call to '(boost::thread_group) (boost::thread) In my class "myThread" I have a overloaded public method: void operator() (void); How can I fix the error?
Member function
create_thread()
template<typename F> thread* create_thread(F threadfunc);
- Effects:
Create a new
boost::thread
object as-if bynew thread(threadfunc)
and add it to the group.- Postcondition:
this->size()
is increased by one, the new thread is running.- Returns:
A pointer to the new
boost::thread
object.
l_group.create_thread( myThread() );