У меня есть следующая простая функция:
void hda(unsigned long &command)
{
command++;
PlugIn::gResultOut << "inside thread: " << command << std::endl;
return;
}
, и я создаю boost :: thread как
void SU_HThread(unsigned long &command)
{
command++,
PlugIn::gResultOut << "before thread: " << command << std::endl;
boost::thread Hthread = boost::thread(boost::bind(boost::move(hda), boost::ref(command)));
return;
}
Но когда я вызываю эту функцию, значение команды, которое внутри потока не зарегистрировано ...
number com = 0
SU_HThread(com)
sleep(1) // sleep 1 second
result("after thread: "+com+" \n")
Вывод:
before thread: 1
inside thread: 2
after thread: 1
Обычный ответ с boost :: ref (command) здесь не работает .. .. Любые идеи? Желательно без использования обещаний, так как мне нужно наблюдать за изменением значения команды в реальном времени.
спасибо!