Посмотрите на boost :: thread и boost :: bind, так как они станут std :: tr1 :: thread и std :: tr1 :: bind.
boost :: thread - небольшой объект, получающий указатель функтора без возвращаемого значения и без аргументов.
Это означает, что указатель на функцию, объявленную как void (*function)(void);
, или структура / класс, реализующий void operator()()
.
Если вы также используете boost :: bind, вы можете адаптировать практически любой функтор, который будет называться void (*functor)(void)
.
Это настолько гибко, насколько вы можете получить (так как вы можете преобразовать любую функцию или подобный ей объект, вызываемый без параметров, а затем запустить его в своем собственном потоке).