Упрощенная версия моего кода выглядит следующим образом:
class threadCreator
{
void threadFunction(void){
// use some private data members and do something.
}
void createThread(void){
boost::thread myThread(
boost::bind(&threadCreator::threadFunction,this));
myThread.detach();
}
}
Эта программа ожидает завершения потока, а затем завершает работу, даже если я вызываю метод отсоединения в потоке.Если я удаляю класс и создаю свой поток только в функции, это, кажется, работает как ожидалось.
Я думаю, что это как-то связано с объектом, все еще находящимся в памяти.Однако я изучаю C ++ и не уверен, как решить эту проблему.