定时器-Vision Timer源码分析
来源:互联网 发布:plc梯形图软件 编辑:程序博客网 时间:2024/05/16 14:24
vp_Timer
一共有3个class,都各司其职:vp_Timer,Event,Handle
1)vp_Timer:提供的使用接口,通过静态方法vp_Timer.In(),加入定时器事件(函数,这里将传入的函数称为事件)2)Event:用来封装传入的事件(函数),保持事件的状态
3)Handle:对事件状态提供查询接口(事件执行了多长时间,结束时间,是否还是Active)以及提供 Excute(立即执行事件),Cancel(取消事件),Pause(暂停事件)等操作
List<Event> m_Active 和 List<Event> m_Pool :这个List都是Event的缓存,其中,m_Active缓存Active的Event,m_Pool缓存无效的Event,这里的Acitive是事件仍然需要执行,无效说明不会再被调用。之所有要缓存无效的Event,是为了节省创建Event对象的消耗。m_Pool就好比垃圾箱,m_Active是一个成品工厂,每次m_Active要生产(Add)新的Event,都去m_Pool取没用的原料(Event),当m_Active的成品没用了,用放会m_Pool中去,这样就达到了循环利用作用。
vp_TimeUtility
定义了个表示时间的结构Units:
1.时间与Units的相互转换:
2.时间转换为字符串string:
3.时间对应时钟的转过的度数:
ps:当Event的参数: Iterations 和 Interval 没有很好处理 Interval 和 Time.deltaTime 的具体情况,假设我们的 Iterations =100 , interval = 0.01f 即我需要达到1s内执行100次的目的,但按照vp_Timer的实现结果是执行了100次,但是时间一定是>= 1s,即当Time.deltaTime > interval 时,还是只执行一次,例如 Time.deltaTime = 0.02f, 理论上我们希望能执行两次,但是却只执行了一次。
- 定时器-Vision Timer源码分析
- Unity时钟定时器插件——Vision Timer源码分析之一
- FreeRTOS timer定时器源码分析
- Timer定时器实现源码分析
- storm定时器timer源码分析-timer.clj
- storm定时器timer源码分析-timer.clj
- Webkit定时器(Timer)分析
- Timer的源码分析
- Timer源码分析
- Timer的源码分析
- Muduo网络库源码分析(二) 定时器TimeQueue,Timer,TimerId
- Muduo网络库源码分析(二) 定时器TimeQueue,Timer,TimerId
- libevent源码学习(四)定时器Timer
- Java定时器之Timer源码剖析
- 定时器之Timer和TimerTask深入分析
- skynet定时器源码分析
- ortp定时器源码分析
- Java Timer 源码深入分析
- Linux—RPM介绍
- React Native嵌入到现有原生应用
- Linux—更换yum源
- 常见的计算机网络面试题(问题+答案)
- iOS表视图之增删单元格
- 定时器-Vision Timer源码分析
- 2323 Emirp(哈尔滨理工大学)
- function基础
- 博为峰Java技术文章 ——JavaSE Swing BorderLayout布局管理器实例I
- MySQL主从同步校验与重新同步
- Fork/Join框架
- 轮回 第二章 冷傲天
- PHP开发实习生任职要求(58)的总结
- Html与CSS样式——2