obsidian/笔记文件/2.笔记/104循环任务时间修正.md
2025-03-26 00:02:56 +08:00

1.4 KiB
Raw Permalink Blame History

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

!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