Android设备上的Boost Asio deadline_timer不会在到期时被解雇,但会在稍后的时间点被解雇

Android设备上的Boost Asio deadline_timer不会在到期时被解雇,但会在稍后的时间点被解雇,第1张

概述我们正在尝试在 Android设备上使用boost asio deadline_timers.我们有一个要求,我们需要每100毫秒发射一个计时器.我使用了如下代码.然而,计时器似乎每1秒被发射一次.我们应该如何在Android系统中微调,以便提升asio截止时间计时器按预期工作? 注意:以下代码在普通Linux系统上按预期工作.是什么让它在Andorid系统上的工作方式不同? 码: void pr 我们正在尝试在 Android设备上使用boost asio deadline_timers.我们有一个要求,我们需要每100毫秒发射一个计时器.我使用了如下代码.然而,计时器似乎每1秒被发射一次.我们应该如何在AndroID系统中微调,以便提升asio截止时间计时器按预期工作?

注意:以下代码在普通linux系统上按预期工作.是什么让它在AndorID系统上的工作方式不同?

码:

voID print(asio::deadline_timer* ptimer,const asio::error_code& err){ struct timeval tval; if(0 == gettimeofday(&tval,NulL)) {  std::cout <<" Timer...  sec::microsec = "<<tval.tv_sec<<"::"<<tval.tv_usec<< std::endl; } else {    std::cout <<" Timer...  gettimeofday Error!" << std::endl; } ptimer->expires_from_Now(boost::posix_time::milliseconds(100)); ptimer->async_wait(boost::bind(&print,ptimer,asio::placeholders::error));}

在AndroID设备上输出

Timer...  sec::microsec = 1298328679::39207Timer...  sec::microsec = 1298328680::46773Timer...  sec::microsec = 1298328681::54624Timer...  sec::microsec = 1298328682::63861Timer...  sec::microsec = 1298328683::65740Timer...  sec::microsec = 1298328684::69301Timer...  sec::microsec = 1298328685::76500Timer...  sec::microsec = 1298328686::85768
解决方法 您可能希望确保您的AndroID环境最终定义了BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK.

如果你看看boost / asio / time_traits.hpp中的默认timer_traits,你会看到如果没有定义,asio会使用second_clock作为它的计时器.

此定义来自boost / date_time / compiler_config.hpp,以BOOST_HAS_GETTIMEOFDAY或BOOST_HAS_FTIME为条件.举个例子,大概应该定义前者.

我不知道androID是否被认为是自己的平台,或者如果boost将其检测为linux.在boost / config / platform / linux.hpp中,它被定义为:

//// If glibc is past version 2 then we definitely have// gettimeofday,earlIEr versions may or may not have it://#if defined(__GliBC__) && (__GliBC__ >= 2)#  define BOOST_HAS_GETTIMEOFDAY#endif

这可能是你想为androID添加额外条件的地方.

总结

以上是内存溢出为你收集整理的Android设备上的Boost Asio deadline_timer不会在到期时被解雇,但会在稍后的时间点被解雇全部内容,希望文章能够帮你解决Android设备上的Boost Asio deadline_timer不会在到期时被解雇,但会在稍后的时间点被解雇所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1124143.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存