104循环任务时间修正.md 1.4 KB

在实现类中,添加任务的方法里,新增一个目标时间,然后替换一下,原本的传参;

![[Pasted image 20220731173723.png]]

需要说明一下,在添加任务的方法体中,如果这个count传参,是设置为1,或者任意比0大的int整数,指的就是,这个任务的循环执行次数;

如果这个count传参,是设置为0,设定上,这个计时器,就是一个一直循环的任务,直到程序结束为止;

![[Pasted image 20220731173921.png]]

写一个任务的回调CallTaskCB委托invoke方法; 在更新任务的方法里,如果任务的计数为0,就执行FinsisTask()方法;

需要注意的是,destTime是一个浮点数值,所以经过多次的运算之后,会出现比较大的偏差,需要对应的方法,来修正处理一下;

![[Pasted image 20220731174436.png]]

记录一下,任务的循环;

![[Pasted image 20220731181113.png]]

循环任务自增;

![[Pasted image 20220731181235.png]]

在初始化的时候,就是一次都没有进行循环的;

![[Pasted image 20220731181339.png]]

然后,改写一下,目标时间每次都是基于初始时间,配合循环数,重新计算的,这样就可以规避,浮点数之间运行,出现偏差的情况了,然后,删除原本的计算方式即可;

![[Pasted image 20220731181752.png]]

加一个注释说明:

![[Pasted image 20220731182109.png]]