class CTimeoutTask :public IdleTask;

每个CTimeoutTask 相当于一个定时器.

SetIdleTimer设置定时期触发时间,CancelTimeout取消定时期,注意idleTask只run一次,重复run多次需要多次调用 SetIdleTimer。每次调用SetIdleTimer都回判断当前task是否已再堆中,如果是,则SetIdleTimer设置失败。而当每一个run触发前,当前task就不会在堆中,因此此时设置SetIdleTimer才能成功。

也就是说设置定时器时不能将一个定时器的所有定时一次性全部设置,正确的方法是先设置一个定时,当该定时触发后,再设置下一个定时,如此重复。

darwin之一万个定时器实现(IdleTask)


darwin之一万个定时器实现(IdleTask)

相关文章:

  • 2022-01-17
  • 2022-01-08
  • 2022-12-23
  • 2022-12-23
  • 2021-09-29
  • 2021-05-06
猜你喜欢
  • 2021-10-29
  • 2022-12-23
  • 2021-09-21
  • 2021-12-06
  • 2022-01-16
  • 2021-11-29
相关资源
相似解决方案