obsidian/笔记文件/2.笔记/106TickTimer服务端测试案例(一).md
2025-03-26 00:02:56 +08:00

3.0 KiB
Raw Blame History

!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

可以看到,间隔差就很大,和上去了;