C#开源定时回调库PETimer的使用
程序员文章站
2022-06-30 22:53:16
PETimer PETimer开源项目GitHub地址: "点击跳转" PETimer 1.双端通用:基于C 语言实现的高效便捷计时器,可运行在服务器(.net core/.net framework)以及Unity客户端环境中。 2.功能丰富:PETimer支持帧数定时以及时间定时。定时任务可循环 ......
petimer
petimer开源项目github地址:点击跳转
petimer
1.双端通用:基于c#语言实现的高效便捷计时器,可运行在服务器(.net core/.net framework)以及unity客户端环境中。
2.功能丰富:petimer支持帧数定时以及时间定时。定时任务可循环、可替换、可取消。可使用独立线程计时(自行设定检测间隔),也可以使用外部驱动计时,比如使用monobehaviour中的update()函数来驱动。
3.集成简单:只有一个petimer.cs文件,只需实例化一个petimer类,对接相应的api,便能整合进自己的游戏框架,实现便捷高效的定时回调服务。
技术支持qq:1785275942
使用示意:
1.unity当中使用
//实例化计时类 petimer pt = new petimer(); //时间定时任务 pt.addtimetask(timertask, 500, petimeunit.millisecond, 3); //帧数定时任务 pt.addframetask(frametask, 100, 3); int tempid = pt.addtimetask((int tid) => { debug.log("定时等待替换......"); }, 1, petimeunit.second, 0); //定时任务替换 pt.replacetimetask(tempid, (int tid) => { debug.log("定时任务替换完成......"); }, 2, petimeunit.second, 0); //定时任务删除 pt.deletetimetask(tempid); //定时检测与处理由monobehaviour中的update()函数来驱动 void update() { pt.update(); }
2.服务器中使用
第一种用法:运行线程检测并处理任务(类似于在unity中使用)
petimer pt = new petimer(); //必须在while循环中调用pt.update()来驱动计时 while (true) { pt.update(); }
第二种用法:独立线程检测并处理任务
//在petimer实例化时,传入检测间隔参数(单位毫秒) petimer pt = new petimer(100);
关于定时任务的添加、替换、删除与unity当中使用方法一致
3.可设置定时回调处理器
当定时任务的回调处理可通过设置处理handle来覆盖默认的执行处理(一般用于独立线程计时)
pt.sethandle((action<int> cb, int tid) => { //覆盖默认的回调处理 //todo });
4.日志工具接口
通过setlog(action
pt.setlog((string info) => { debug.log("loginfo:" + info); });
5.其它常用api
//获取本地datetime public datetime getlocaldate(); //获取年份 public int getyear(); //获取月份 public int getmonth(); //获取天数 public int getday(); //获取星期 public int getweek(); //获取自1970-1-1以来的毫秒总数 public double getmillisecondstime(); //获取当前时间字符串 public string getlocaltimestr();
下一篇: 63. Unique Paths II