用boost::timer实现的一个计时器
class Delayed
{
public:
Delayed()
{}
Delayed(double millseconds)
: time_(millseconds)
{}
bool isOk()
{
if (t_.elapsed() > time_)
return true;
return false;
}
void set(double millseconds)
{
time_ = millseconds;
}
void start()
{
t_.restart();
}
~Delayed()
{}
private:
boost::timer t_;
double time_;
};
那么,惊喜来了,在Linux系统下,sleep时系统认为cpu没有被使用,boost::timer将无法计时,调用elapsed()获取流逝时间为0,或者很短的一段时间。而windows就没有这个问题。