这是一个辅助类,用来提供定时信号和单发的定时器 。
要使用一个定时器,就创建一个WTimer 实例,使用 setInterval() 设置定时时间间隔 ,并且将一个信号槽连接到timeout 信号。然后,使用 start() 启动这个定时器 。可以在任何时候使用 stop() 来取消一个活跃的定时器 。
默认情况下,一个定时器会持续产生事件,直到你停止(stop() )它。要创建一个只闹一次的定时器的话 ,就使用 setSingleShot() 。另外还有一个方便的静态方法 singleShot() 。
(在Ajax 可用的情况下)当一些无状态槽被连接到timeout 信号时 ,这些无状态槽会被像与其它信号连接起来一样地使用 (as for any other signal) 。
在没有(启用)JavaScript 支持的客户端中,定时器的最小分辨率是 1秒(1000毫秒),所以 ,定时器还是少用比较好。
WTimer 只在Wt 事件循环里可用。如果你想在一个Wt 事件循环之外创建一个定时器的话 ,就去看看asio deadline_timer。
定时器是无需用户做出动作就更新页面的方法之一。另外,你还可以考虑使用服务器端推动的更新,看看WApplication::enableUpdates() 。
使用示例:
//设置一个定时器,它每隔2 秒钟调用MyClass::timeout()一次,直到timer->stop()被调用为止。
Wt::WTimer *timer = new Wt::WTimer();
timer->setInterval(2000);
timer->timeout().connect(this, &MyClass::timeout);
timer->start();
HxLauncher: Launch Android applications by voice commands