需要解释此boost :: asio计时器示例

时间:2010-03-20 02:38:34

标签: c++ boost boost-asio

Boost asio的第3个教程中有一行显示了如何更新计时器并防止其漂移。该行如下:

 t->expires_at(t->expires_at() + boost::posix_time::seconds(1));

也许是我,但我无法找到e xpires_at()的第二次使用的文档,没有参数。 expires_at(x)设置新的到期时间,取消所有待处理的完成处理程序。所以推测expires_at()会做什么,最后一次到期的返回时间?因此,通过增加一秒,如果应该有一些ms,比如说n ms,那么它本质上将从下一个到期时“减去”,因为时间被计算在内?如果在此示例中执行此处理程序所需的时间大于1秒,会发生什么?它会立即开火吗?

1 个答案:

答案 0 :(得分:2)

expires_at()返回设置为超时的时间。所以这会将超时时间移动到1秒后。

当您使用expires_at(x)设置时间时,如果由于时间已经过去而已经调用,则返回0。如果return大于0,则表示取消的次数。