0
我使用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){ }
不起作用。 如果我在while(run){ }
之後放io.run()
,定時器不起作用。 因爲它們在主線程中。
如何在一個線程內運行boost :: asio :: deadline_timer,這樣就沒有對while循環的阻塞。