![[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]]
可以看到,间隔差就很大,和上去了;