Я использовал boost :: asio :: deadline_timer для запуска функции. У меня есть MosquitoInterface
класс как следоватьИспользование boost :: asio :: deadline_timer внутри потока
class MosquitoInterface{
MosquitoInterface(deadline_timer &timer) : t(timer){}
}
Внутри моего main.c
int main(int argc, char** argv)
{
io_service io;
deadline_timer t(io);
MosquitoInterface *m = new MosquitoInterface(t);
io.run();
d = new Detectdirection();
while(run)
{
int ret = d->Tracking();
if(ret < 0)
cout << "Pattern is not found" << endl ;
}
if(d!=NULL)
delete d;
if(m!=NULL)
delete m;
cout << "Process Exit" << endl;
exit(1);
}
Если я бегу io.run()
; до while(run){ }
, while(run){ }
не работает. Если я положил io.run()
после while(run){ }
, таймер не работает. Поскольку они находятся в главной теме.
Как запустить boost :: asio :: deadline_timer внутри потока, чтобы не было блокировки цикла while.