![[Pasted image 20220731185341.png]] 在重置函数中,添加一个判空处理,如果队列不为空,弹出警告提示即可; ![[Pasted image 20220731185522.png]] 新建一个项目,用来测试工具; ![[Pasted image 20220731185606.png]] 是一个控制台应用; ![[Pasted image 20220731185647.png]] ![[Pasted image 20220731185732.png]] 需要先添加项目引用(当然,也可以将前面的工程,先打包成dll文件,再引用即可); ![[Pasted image 20220731185820.png]] 勾选一下,再引用即可; ![[Pasted image 20220731185913.png]] 先写一个最基础的静态函数,然后在Main函数调用一下即可; ![[Pasted image 20220731190238.png]] 可以看到,日志也是正常打印的; ![[Pasted image 20220731190325.png]] 日志的打印信息,如果再丰富点,可以参考这个教程开发即可; [[从零开发跨平台通用日志插件]] ![[Pasted image 20220731190553.png]] 这里可以直接选择,调用; ![[Pasted image 20220731191946.png]] 选择,检索,安装,即可; ![[Pasted image 20220731192056.png]] 用一下对应的命名空间,然后初始化,再调用一下即可; ![[Pasted image 20220731192207.png]] 重新运行,可以发现,颜色是改变的了; ![[Pasted image 20220731192427.png]] 完善一下方法,先构建一个计时器出来,其中的打印,警告,报错等action委托,跟日志插件绑定一下; 其中,delta是时间差值; ![[Pasted image 20220731193203.png]] 然后,将时间差,还有对应的tid,都打印出来; ![[Pasted image 20220731193511.png]] 作为返回值,得到一下,对应的任务id; ![[Pasted image 20220731193606.png]] 补充一下,设置它的初始值,是0; ![[Pasted image 20220731193659.png]] 在while循环中,添加对输入字符串的监听,判断是要打印平均间隔,还是要删除任务; ![[Pasted image 20220731193954.png]] 补充一下代码,在添加任务之后,要重置一下,将historyTime变成当前的时间; ![[Pasted image 20220731194108.png]] 运行程序,就可以得到,对应的间隔差了; ![[Pasted image 20220731194222.png]] 输入calc,是可以得到平均间隔的; ![[Pasted image 20220731194402.png]] 测试一下,任务是否可以取消; 将count计数器,增大10倍,变成500; ![[Pasted image 20220731194446.png]] 运行过程,输入del,正常取消任务,打印cancel; ![[Pasted image 20220731194650.png]] 将参数都改小一点; ![[Pasted image 20220731194709.png]] 时间差的间隔,比较小,单位毫秒级别的误差; ![[Pasted image 20220731194756.png]] 计算得到的平均误差,是1.52毫秒; ![[Pasted image 20220731194838.png]] 如果把这个参数改大,再运行; 相关实现,参考[[103驱动线程设置]]即可; 就是开线程的时间,跟游戏时间的差距,因为是有一个sleep开新线程的时间; ![[Pasted image 20220731194907.png]] 可以看到,间隔差就很大,和上去了;