把相关的方法,从unity里抽象出来,实际上是把Update函数,弄一个while函数实现 可以看到,计时器类,还是时间任务列表,帧任务列表 ![[Pasted image 20230817183511.png]] 计时器类里,更新函数,也是类似的逻辑,检测对应的列表 ![[Pasted image 20230817183614.png]] 不过,时间上的获取,是有一个新知识点 这个double的数据,指的是现在时间 ![[Pasted image 20230817183657.png]] 其中,计算机元年是1970年1月1日0点 ![[Pasted image 20230817183754.png]] 对应的就是这个 ![[Pasted image 20230817183946.png]] 然后,计算,拿到现在的时间 ![[Pasted image 20230817184034.png]] 在添加时间任务的函数里面 AddTimeTask ![[Pasted image 20230817184611.png]] 时间就是调用这个函数获取的 ![[Pasted image 20230817184652.png]] 然后,把拿到的时间,跟传参进来的延迟,叠加,就可以加一个时间任务了 ![[Pasted image 20230817185723.png]] 这里就是添加任务的相关逻辑,可以看到,是有一个while死循环的函数,去实现update功能的 ![[Pasted image 20230817190032.png]] 在Main函数里,调用 ![[Pasted image 20230817190142.png]] 运行,可以看到,对应的线程ID,是主线程 ![[Pasted image 20230817190212.png]] 也就是对应这里的逻辑 ![[Pasted image 20230817190338.png]] 然后,第二个是独立线程的,不同的地方,在于这里多了一个 5 的传参 ![[Pasted image 20230817190441.png]] ![[Pasted image 20230817190510.png]] 如果传参不为0,就会另外新加一个计时器,在线程池,延迟5秒开始 ![[Pasted image 20230817190526.png]] ![[Pasted image 20230817190548.png]] 第二种方法,也会有,打印线程ID的操作 ![[Pasted image 20230817190626.png]] 注释,然后使用第二个 ![[Pasted image 20230817190659.png]] 根据上述逻辑,运行,延迟5秒之后,开始打印线程id,可以看到,是用了不同线程的 具体用哪个线程,就是 计算机CPU 自己调度的了 ![[Pasted image 20230817190925.png]]