【发布时间】:2016-12-02 08:47:10
【问题描述】:
我使用 boost::asio::deadline_timer 来运行一个函数。
我有MosquitoInterface 类如下
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 循环。
【问题讨论】:
标签: c++ multithreading boost boost-asio