0
私はboost :: asio :: deadline_timerを使って関数を実行しました。 私はio.run()
を実行した場合、私のmain.c
スレッド内でboost :: asio :: deadline_timerを使用する
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);
}
内部
class MosquitoInterface{
MosquitoInterface(deadline_timer &timer) : t(timer){}
}
に従うようMosquitoInterface
クラスを持っています。 while(run){ }
の前には、while(run){ }
は機能しません。 while(run){ }
の後にio.run()
と入力すると、タイマーが機能しません。 これはメインスレッドにあるためです。
スレッド内でboost :: asio :: deadline_timerを実行して、whileループの妨害がないようにする方法。